Skip to content

Instantly share code, notes, and snippets.

@rolandshoemaker
Created April 19, 2016 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rolandshoemaker/f94d12b4ed03071c055d1b6b63d6d956 to your computer and use it in GitHub Desktop.
Save rolandshoemaker/f94d12b4ed03071c055d1b6b63d6d956 to your computer and use it in GitHub Desktop.
import OpenSSL
key_str = """-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDKcAkiny4Sgt0p
7yzaVWsgBMgB1YsZLrID66AD2UQR9FQKIP6+CTn6CXs+wAYmdmSF1wNoIOuf9OR5
BjZfcMPrGtBGPHgrcv/FnB8as2n1J8lziWbizDyY2idqIgb/9wTOz2YKRc8jWdP9
GbkSnRRrRGPr1/Rl2VFdAN7MWTDqXHtJYRwIgZP7zQEScjNvjvnGe1o82e0dU/Zs
gMsbbBYVst0GLyMIilVRd5Q6dyl5T2f+8AYVSAXFUpNG84bHqLclJyoPmi+amSHg
dXIuyE+agP+gtf27AkiUm0OYJ0MCENImlFf0oFAaSjamG5p0nWZg8b71vBc4bi+i
Ugy3wUdpAgMBAAECggEBAI6q1JVUz5h2J73E9LxOlLe1Buvb/jLaKNUAev4bYZCx
u4SD6mQthnGDuxrnI655o7B7bsg04zoQ0e/FBA7RHxITDJNjTGF6o2018OnVZahD
yQKm5B6UR2SF4l826e38vaOuoMA+oJPOW8s1FKxcjaZnRXBR+sjIlkHQOjST6xhO
ogUV1izm3Uib8TAqpy/Bp+qbXhjhYAGkRf18oieugiQUIwtccqvwbY+03SDFo7sX
vqk9I++H8wrjP9Fjda74v4UWWGWPyt+j5mAE6QgPlO0lz/s8JWZJHGRgSgwoIZRw
az5jnQ7w5GwNaulySH3r5BrxUxk/LWr1Y+tcyqvMYm0CgYEA6nCiSOtxeKLG3QSo
fn9+ukhCFmWHvTVK/g8lDWJ9Kzgq0nXjWlPn+b0wJMlPqGxTAOYQPZw6fVPhJENh
GNbYuSdT5emGg/9mbXU9Edjb9w73jeqkXd2y0hYqUYgii7EWD6vbkVxnWKzTtcvw
4EtJHG2byGJPvhoSWT9hRcM1GeMCgYEA3Q36aDaUysmpQ1/+C148fdXyOd5Rn1Yg
umjtk6EmxxFD6lozxd2YFwP0zONeQICJhsHPjZsXVEr8gFH6Lr2XElQae0Kanwh0
7FKjB0PNAIdahk68YUeWq+lfWF3ylPWog3c1YN3ccMHcvQTRGMYhM6ilTnaLWDyO
bRwvKO+CS0MCgYBP/mLBcuTi/tfQLni3wRUixukV70rjur199vjzmjmPd7jU2zja
Z2ruAindQ3uUwnGICvhbrWUfwnE+CGenLBgDBXJRLt+hRpJSowBViKN1p3u8xuWS
ycTsfneuHj97Xs9iRYfED72Lulz62T21qrqlopjXRQRkn0zHeyLbxQHndQKBgQCi
0D7VLw5cZjfDJhqpKNmJHWFxeevIXdlxMwN5LsKu8GqDW7iyTcpNeV5+4iBzhbjF
hk5m0ApYzXo40Shh8MYqe8OdcasM41+rCBqHqUp+zzK/pZJeXCn/qL3PCjM3v9BE
NDMei4pnioIYvkl748JkmBxZNDrh3IhSmOWrUu02nQKBgQCzC8SO/byu14OBdmc/
rV52M/enhqKT8OeFB7ktXMmjkPiMEfCpAeDShWfyI7rUf+KyVUBijgQWWFoT4/2z
iCBUSisgDVbZ1CiROuUo9Iz0QLEqCikclyC6eMn3GNcGZTO/Kkj/EsJ4JrVbcBay
Hf2Rf5GZHjdsNhwcJBucXwrs0g==
-----END PRIVATE KEY-----"""
domains = ["example.com"]
pkey = OpenSSL.crypto.load_privatekey(OpenSSL.crypto.FILETYPE_PEM, key_str)
req = OpenSSL.crypto.X509Req()
req.get_subject().CN = domains[0]
req.set_pubkey(pkey)
req.sign(pkey, "sha256")
csr = OpenSSL.crypto.dump_certificate_request(OpenSSL.crypto.FILETYPE_ASN1, req)
with open("test.der", "w") as f:
f.write(csr)
package main
import (
"io/ioutil"
"crypto/x509"
)
func main() {
csrBytes, err := ioutil.ReadFile("test.der")
if err != nil {
panic(err)
}
_, err = x509.ParseCertificateRequest(csrBytes)
if err != nil {
panic(err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment