flag.Parse()
data, err := io.ReadAll(os.Stdin)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
b, _ := pem.Decode(data)
if b == nil || b.Type != "CERTIFICATE" {
- log.Fatalln("no CERTIFICATE")
+ log.Fatal("no CERTIFICATE")
}
cer, err := x509.ParseCertificate(b.Bytes)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
h := sha256.Sum256(cer.RawSubjectPublicKeyInfo)
fmt.Println(hex.EncodeToString(h[:]))
log.SetFlags(log.Lshortfile)
if *cn == "" {
- log.Fatalln("no CommonName is set")
+ log.Fatal("no CommonName is set")
}
var curve *gost3410.Curve
var sigAlg x509.SignatureAlgorithm
curve = gost3410.CurveIdtc26gost341012512paramSetC()
sigAlg = x509.GOST512
default:
- log.Fatalln("unknown curve name")
+ log.Fatal("unknown curve name")
}
var err error
if *issueWith != "" {
caCer, caPrv, err = loadKeypair(*issueWith)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
sigAlg = caCer.SignatureAlgorithm
}
if *reuseKey == "" {
prvRaw := make([]byte, curve.PointSize())
if _, err := io.ReadFull(rand.Reader, prvRaw); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
prv, err = gost3410.NewPrivateKey(curve, prvRaw)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
data, err := x509.MarshalPKCS8PrivateKey(prv)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
data = pem.EncodeToMemory(&pem.Block{Type: PEMKey, Bytes: data})
if *outKey == "" {
err = os.WriteFile(*outKey, data, 0o666)
}
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
if *onlyKey {
return
} else {
_, prv, err = loadKeypair(*reuseKey)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
}
if *serial == -1 {
data := make([]byte, 16, gost34112012256.Size)
if _, err = io.ReadFull(rand.Reader, data); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
hasher := gost34112012256.New()
if _, err = hasher.Write(data); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
data = hasher.Sum(data[:0])
sn = sn.SetBytes(data[:20])
pub, err := prv.(*gost3410.PrivateKey).PublicKey()
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
hasher := gost34112012256.New()
if _, err = hasher.Write(pub.Raw()); err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
spki := hasher.Sum(nil)
spki = spki[:20]
&gost3410.PrivateKeyReverseDigest{Prv: caPrv.(*gost3410.PrivateKey)},
)
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
data = pem.EncodeToMemory(&pem.Block{Type: PEMCer, Bytes: data})
if *outCer == "" {
err = os.WriteFile(*outCer, data, 0o666)
}
if err != nil {
- log.Fatalln(err)
+ log.Fatal(err)
}
}