Go
Go
Duplicate OpensSSL Command that Decrypts Binary DER
See more OpenSSL Examples
This example duplicates the following:openssl smime -decrypt -in INPUT_FILE -inform der -binary -out OUTPUT_FILE -recip PEM_CERT_AND_KEY -passin pass:PRIVKEY_PASSWORD
Note: Although "smime" is the OpenSSL command, we're not really dealing with S/MIME. The arguments "-inform der -binary" indicate that the input is simply the binary DER (i.e. the PKCS7 binary encrypted object). The output can be any type of file (whatever was encrypted).
Chilkat Go Downloads
success := false
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
crypt := chilkat.NewCrypt2()
crypt.SetCryptAlgorithm("pki")
pem := chilkat.NewPem()
success = pem.LoadPemFile("qa_data/pem/myPem.pem","password")
if success == false {
fmt.Println(pem.LastErrorText())
crypt.DisposeCrypt2()
pem.DisposePem()
return
}
privkey := chilkat.NewPrivateKey()
success = pem.PrivateKeyAt(0,privkey)
if success == false {
fmt.Println(pem.LastErrorText())
crypt.DisposeCrypt2()
pem.DisposePem()
privkey.DisposePrivateKey()
return
}
cert := chilkat.NewCert()
success = pem.CertAt(0,cert)
if success == false {
fmt.Println(pem.LastErrorText())
crypt.DisposeCrypt2()
pem.DisposePem()
privkey.DisposePrivateKey()
cert.DisposeCert()
return
}
success = crypt.SetDecryptCert2(cert,privkey)
if success == false {
fmt.Println(crypt.LastErrorText())
crypt.DisposeCrypt2()
pem.DisposePem()
privkey.DisposePrivateKey()
cert.DisposeCert()
return
}
success = crypt.CkDecryptFile("qa_data/infile.enc","qa_output/outfile.dat")
if success == false {
fmt.Println(crypt.LastErrorText())
crypt.DisposeCrypt2()
pem.DisposePem()
privkey.DisposePrivateKey()
cert.DisposeCert()
return
}
fmt.Println("Success.")
crypt.DisposeCrypt2()
pem.DisposePem()
privkey.DisposePrivateKey()
cert.DisposeCert()