Golang crypto/x509.ParsePKCS1PrivateKey() function example
package crypto/x509
ParsePKCS1PrivateKey returns an RSA private key from its ASN.1 PKCS#1 DER encoded form.
Golang crypto/x509.ParsePKCS1PrivateKey() function usage example
package main
import (
"crypto/x509"
"os"
"fmt"
"encoding/pem"
)
func main() {
var pemBytes = `-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvy723k7qOmLgY+aTAKtKFfMHIeAdfEe2TTu+HyM29MEKefWp
8Tq7vmmT1aK3/qV/VXofdlF4e7E0mei0m1fMVMecDatVfGAiVae1WhxW4Ppkh3zS
Oz0w2dOp6iSzpo4vN1UKMdOdGLfjx/oUK4HoFBjf36AGW/JIbc9Hdaof2CMZchKR
nuWS2+EPyqKcuTE4xlp3nTj3sUppbUKqE6d9PqsbkTmfHTFOx/itX2b+x7UbgRzI
NgOGgO3w7YAOkRfMJpEdxBRRTWyVxONrtHEE2k1/Moy73hR1JlkEgi0IyEFGC6yF
3/0bRgGs95l5F62jsLNo4bU3YL6p0g5eotsl/wIDAQABAoIBAQC/BePwWBU85VKj
Pt0ezAcoSz2TIWUUqmqCXPEoF31vq/oVxdpZh3/TT5ZA3WbObvn9pBoPlHO302Vl
atgaZu1owFEyb0DpFvz3bKyNLse33zfXEGbWfdtzqkOaCbXe8y5GMRgQlQngisxz
IXJJznDes8Psou33rOulnHggHy3WO+4djaStsY78R+ulZs2KExeWISZtxs6USYc7
Nl9kc0r0p8k0oNCX6z2fFAaQQhv9gf1KARvm3TmtaNHTdXj/rVQByPM9MmWupzvl
OXSweHIk1DKkkGu4j0U1ZdH2bMF2L7JhD9iO9v8R9O2O+HrCARqxCXfan+OFDclx
9Td/KJKxAoGBAPtNmeawj89zetS2stbw7LI7sVh1LZ0GRf6CbJ19p93H+fyq3yUf
PSYpr3fxSBPoiI1KR06Gzd2YWo4qf4z4L9qjqs5gmuBAlTKsWNH8Q8QMX3HwG33k
0KPGkPBMe3YAni1kkyemPFKmh0x8NY3astwRzK8qbsYtHIiAz8Hoj3jbAoGBAMLB
thOnFn9iNgT7NBtBa3MXVg8TudUdwIMTMPUoO8i/c7oWrKYahlnqXZwXffisd+FO
XgqVzSxTqXovqiDrXQKFX+AB1TWHPEnUwPNFI9o1A3RNan5D2I77G9CDKzKMZXEU
/lLmja3O3mAPZxouZdeCHH4qnwe+chqwGfWKp46tAoGBAPY65O8KVP55MgM2OCku
y10f6/a2ackPmolzlaUCt/YwuRr++cHPyASal5k4St1m3FVEUHX607+qRiBCN9QS
YiEieHvaYCYWYZnTEPw+5s8zKFnlX6qNBnlSWDV7WwUWOeZUQ3N4CGcbUDp7AaZK
gTHsJtgDBaMcFHcTb32Ztuo9AoGAIkynWnK03Z5YUSxEkwBEgjJ774/TzJq+ytbY
anS5grNlGELiCSbmvnMuJU1l3CPTwRRiL48OYV4inOhEGCQbb1Q5/GOWPyUgEwir
KqzkkYuAnjz8IlykiRnkXiabtv1O6EmAOO1tykyCkXxk9hFx0jCSAA5Vj7GUuuqE
x9+xfskCgYBRZK9IY9+ueYZ0WFdbFl5PjCT64OPQ4fCMnlZcWoS5knnett771x24
SAzdOyicRdsBjoDrfTlFLQdyBrtVzvj7ZHUVpEauRQE2oISiykBDyIMYqJGrj6CY
AKLsFBOVa9bpVjgq6WtjgQzsPUUWhNxsjzFU19S7h8swri084/N2jw==
-----END RSA PRIVATE KEY-----`
block, _ := pem.Decode([]byte(pemBytes))
privatekey, err := x509.ParsePKCS1PrivateKey(block.Bytes)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Printf("Public Key : : %s\n\n", privatekey.PublicKey)
fmt.Printf("Private Key D : : %d\n\n", privatekey.D)
fmt.Printf("Private Key Primes : : %d\n\n", privatekey.Primes[0])
fmt.Printf("Precomputed : : %v\n\n", privatekey.Precomputed)
}
Reference :
Advertisement
Something interesting
Tutorials
+20.2k Golang : Count number of digits from given integer value
+8.3k Golang : Number guessing game with user input verification example
+11.1k Golang : Read until certain character to break for loop
+5.4k Javascript : How to loop over and parse JSON data?
+17.3k Golang : How to tell if a file is compressed either gzip or zip ?
+8.4k Golang : Convert word to its plural form example
+5.6k Swift : Get substring with rangeOfString() function example
+25.7k Golang : missing Mercurial command
+14.4k Golang : How to pass map to html template and access the map's elements
+7.2k Golang : Dealing with postal or zip code example
+6.3k WARNING: UNPROTECTED PRIVATE KEY FILE! error message