Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package cert
 
import (
    "crypto/x509/pkix"
    "encoding/asn1"
    "math/big"
)
 
type ecPrivateKey struct {
    Version       int
    PrivateKey    []byte
    NamedCurveOID asn1.ObjectIdentifier `asn1:"optional,explicit,tag:0"`
    PublicKey     asn1.BitString        `asn1:"optional,explicit,tag:1"`
}
 
type pkcs8 struct {
    Version    int
    Algo       pkix.AlgorithmIdentifier
    PrivateKey []byte
    // optional attributes omitted.
}
 
type pkcs1AdditionalRSAPrime struct {
    Prime *big.Int
 
    // We ignore these values because rsa will calculate them.
    Exp   *big.Int
    Coeff *big.Int
}
 
type pkcs1PrivateKey struct {
    Version int
    N       *big.Int
    E       int
    D       *big.Int
    P       *big.Int
    Q       *big.Int
    // We ignore these values, if present, because rsa will calculate them.
    Dp   *big.Int `asn1:"optional"`
    Dq   *big.Int `asn1:"optional"`
    Qinv *big.Int `asn1:"optional"`
 
    AdditionalPrimes []pkcs1AdditionalRSAPrime `asn1:"optional,omitempty"`
}