func()

in go/cmd/aggregate-crls/aggregate-crls.go [363:403]


func (ae *AggregateEngine) StoreRevokedCertificateList(ctx context.Context, issuer types.Issuer,
	serials []types.SerialAndReason) error {

	// Ensure that the output directory exists
	err := os.MkdirAll(ae.rootPath, permModeDir)
	if err != nil {
		return err
	}

	path := filepath.Join(ae.rootPath, issuer.ID())

	fd, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, permMode)
	if err != nil {
		return err
	}
	defer fd.Close()

	writer := bufio.NewWriter(fd)
	defer writer.Flush()

	for _, s := range serials {
		select {
		case <-ctx.Done():
			return ctx.Err()
		default:
			_, err = writer.WriteString(hex.EncodeToString([]byte{s.Reason}))
			if err != nil {
				return err
			}
			_, err := writer.WriteString(s.Serial.HexString())
			if err != nil {
				return err
			}
			err = writer.WriteByte('\n')
			if err != nil {
				return err
			}
		}
	}
	return nil
}