@@ -25,32 +25,36 @@ $ openssl x509 -req -in "${CLIENT_NAME}.csr" -extfile "${EXTFILE}" -days 365 -CA
25
25
$ rm " ${EXTFILE} " " ${SERVER_NAME} .csr" " ${CLIENT_NAME} .csr"
26
26
```
27
27
28
- in pion/examples/util/util.go, convert ECPrivateKey to PKCS8PrivateKey
29
-
30
- ``` go
31
- func LoadKey (path string ) (crypto .PrivateKey , error ) {
32
- ....
33
- if key , err := x509.ParseECPrivateKey (block.Bytes ); err == nil {
34
- ` ` ` b, err := x509.MarshalPKCS8PrivateKey(key)
35
- if err != nil {
36
- return nil, err
37
- }
38
- var pemPrivateBlock = &pem.Block{
39
- Type: "PRIVATE KEY",
40
- Bytes: b,
41
- }
42
- pemPrivateFile, err := os.Create(path+".private_key.pem")
43
- if err != nil {
44
- fmt.Println(err)
45
- os.Exit(1)
46
- }
47
- err = pem.Encode(pemPrivateFile, pemPrivateBlock)
48
- if err != nil {
49
- fmt.Println(err)
50
- os.Exit(1)
51
- }
52
- pemPrivateFile.Close()
53
-
54
- return key, nil
55
- }
56
- ...
28
+ ## Converting EC private key to PKCS #8 in Rust
29
+
30
+ ` Cargo.toml ` :
31
+
32
+ ``` toml
33
+ [dependencies ]
34
+ topk8 = " 0.0.1"
35
+ ```
36
+
37
+ ` main.rs ` :
38
+
39
+ ``` rust
40
+ fn main () {
41
+ let ec_pem = "
42
+ -----BEGIN EC PRIVATE KEY-----
43
+ MHcCAQEEIAL4r6d9lPq3XEDSZTL9l0D6thrPM7RiAhl3Fjuw9Ji2oAoGCCqGSM49
44
+ AwEHoUQDQgAE4U64dviQRMujGK0g80dwzgjV7fnwLkj6RfvINMHvD6eiCsphWIlq
45
+ cddTAoOjXVQDu3qMAS1Ghfyk1F377EW1Sw==
46
+ -----END EC PRIVATE KEY-----
47
+ " ;
48
+
49
+ let pkcs8_pem = topk8 :: from_sec1_pem (ec_pem ). unwrap ();
50
+
51
+ println! (" {}" , pkcs8_pem );
52
+
53
+ // -----BEGIN PRIVATE KEY-----
54
+ // MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgAvivp32U+rdcQNJl
55
+ // Mv2XQPq2Gs8ztGICGXcWO7D0mLagCgYIKoZIzj0DAQehRANCAAThTrh2+JBEy6MY
56
+ // rSDzR3DOCNXt+fAuSPpF+8g0we8Pp6IKymFYiWpx11MCg6NdVAO7eowBLUaF/KTU
57
+ // XfvsRbVL
58
+ // -----END PRIVATE KEY-----
59
+ }
60
+ ```
0 commit comments