Golang crypto/tls.X509KeyPair function example
package crypto/tls
X509KeyPair parses a public/private key pair from a pair of PEM encoded data.
Golang crypto/tls.X509KeyPair function usage example
package main
import (
"fmt"
"os"
"crypto/tls"
"crypto/rand"
"crypto/x509"
)
func main() {
var rsaCertPEM = `-----BEGIN CERTIFICATE-----
MIICsDCCAhmgAwIBAgIJAO5D1qsH/78rMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTQwODA0MDIyNzUyWhcNMTUwODA0MDIyNzUyWjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDV9W372uXevUgcoOvcHqf5uV0mEh9Tmw+qy/vhDkZIfC8NSoUmwAL5vgvYv6c2
YMnAKJ6ElZxVJZhPuRR6y1ttAJbiJvyJWIbIJmslOHO+IK1OCbVEl0gQ1IaJQYP2
saz68xjG/xh8xUdxSx1zBMhKnR7erw5pekz46vKcjieQTQIDAQABo4GnMIGkMB0G
A1UdDgQWBBQ5wLg8Q5l5TptdhBuhRYWIP6m4zDB1BgNVHSMEbjBsgBQ5wLg8Q5l5
TptdhBuhRYWIP6m4zKFJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUt
U3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAO5D1qsH
/78rMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAqjU+G10RfNQqqSFv
ugASDEdbt2N3QxJRNQqjfM1mdQ0K/ghKY4mIz39/oMW/ZeLTDdBTp1GW7JWcL/yK
PUoYcr9+iDlWmOr0YT0of4W7UmWRDOROgm3sDG+IXC0nVAHk5mzgv4oTmrMWoOTT
nbhct5AWXmGPgIGenmpzk57aayA=
-----END CERTIFICATE-----`
var rsaKeyPEM = `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDV9W372uXevUgcoOvcHqf5uV0mEh9Tmw+qy/vhDkZIfC8NSoUm
wAL5vgvYv6c2YMnAKJ6ElZxVJZhPuRR6y1ttAJbiJvyJWIbIJmslOHO+IK1OCbVE
l0gQ1IaJQYP2saz68xjG/xh8xUdxSx1zBMhKnR7erw5pekz46vKcjieQTQIDAQAB
AoGAaQWss+hx1xCgGfVfcM/Xcfvr3ikdGWPOn+66t3DTTPcv/V0r2KZ9j2sa04zX
nhiKT3lgvgHWF/F5PwDBLbkuKX+gFfcqXaUjOWJUig9ZtnvlxhR0qPwJnzcqtvPV
+PeVKsF8D/dD5+vu8DK1F64i01h+y0HCS4g94Bq1ivL/tF0CQQD9B/5mNtoUSRiZ
hKLvs+FHRSvpQgCzVSx1tHMqUtP/11/s/1TJbVQ4C+6Z6kOZ3W5H4QU8Ta5mnavC
ot/c6awXAkEA2HgT0THf8QR81nj01QS7d/mrO5rcTc0Is0FajHQIJHfJTV1O4bBq
yYPlKr1fUJq2TJ0yIqzjpHHrNsw7+9exOwJBAM9FnhKy+h/F5P3U1fgPXQoZ0qeo
JpTAv8PHxtMzuHAKSI0Gd7js8yFaPOEeMrQ23GDLJpPIeoWawRmWfFUloY8CQQDX
uqt9Qyg7yU4ka/0LwiCWi5Iz37yIKLrv8kSsTwLCXUKXwFLZpvh1heXAN2QjL1xY
dBy/4+8mNoXEYbux2557AkBvVzGjgcUbSCKJAoN0EYVad5/CtJoZhKyIH3ONKwvU
sbIV3y4tTpNvpBzg62ZE0M0WshIqL6yx+kQHCZdi09/E
-----END RSA PRIVATE KEY-----`
certificate, err := tls.X509KeyPair([]byte(rsaCertPEM), []byte(rsaKeyPEM))
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// certificate
var cert_byte [][]byte
cert_byte = certificate.Certificate
fmt.Printf("Server.pem file content :\n%s\n", cert_byte)
// private key
fmt.Printf("Server.key(Private Key) \n%x\n", certificate.PrivateKey)
// OCSPStaple
var ocsp []byte
ocsp = certificate.OCSPStaple
fmt.Printf("OCSPStaple : \n%x\n", ocsp)
// Leaf
var lf *x509.Certificate
fmt.Printf("Leaf \n%x\n", &lf)
}
Example output :
Server.pem file content : 0E1�0�� *�H��0 0 UAU10U Some-State1!0U ......�js���k ]
Server.key(Private Key) &{{d5........7099762d3dfc4 []}}
OCSPStaple : nil
Leaf c208042020
Reference :
See also : Golang crypto/tls.LoadX509KeyPair function example
Advertisement
Something interesting
Tutorials
+41.9k Golang : How do I convert int to uint8?
+9.7k PHP : Get coordinates latitude/longitude from string
+9.9k Golang : Translate language with language package example
+7.5k SSL : How to check if current certificate is sha1 or sha2 from command line
+5.7k Golang : ROT32768 (rotate by 0x80) UTF-8 strings example
+20.2k Golang : Compare floating-point numbers
+9.3k Golang : How to get garbage collection data?
+20.4k nginx: [emerg] unknown directive "passenger_enabled"
+18.5k Golang : Send email with attachment
+5k Python : Convert(cast) bytes to string example
+13.9k Golang : Human readable time elapsed format such as 5 days ago
+18.4k Golang : How to remove certain lines from a file