Skip to content

Commit 4cd47d1

Browse files
committed
Change example code for converting private keys (EC -> PKCS8) from Go to Rust
1 parent 9ef6147 commit 4cd47d1

File tree

1 file changed

+33
-29
lines changed

1 file changed

+33
-29
lines changed

dtls/examples/certificates/README.md

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,36 @@ $ openssl x509 -req -in "${CLIENT_NAME}.csr" -extfile "${EXTFILE}" -days 365 -CA
2525
$ rm "${EXTFILE}" "${SERVER_NAME}.csr" "${CLIENT_NAME}.csr"
2626
```
2727

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

Comments
 (0)