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
+5.8k CodeIgniter/PHP : Remove empty lines above RSS or ATOM xml tag
+4.6k Mac OSX : Get disk partitions' size, type and name
+12.4k Elastic Search : Return all records (higher than default 10)
+7k Golang : Find the shortest line of text example
+6.5k Grep : How to grep for strings inside binary data
+15.6k Golang : Force download file example
+5k Linux : How to set root password in Linux Mint
+7.3k Golang : alternative to os.Exit() function
+12.5k Golang : Forwarding a local port to a remote server example
+15.6k Chrome : ERR_INSECURE_RESPONSE and allow Chrome browser to load insecure content
+9.5k Golang : Convert(cast) string to int64