Sample code for 30+ languages & platforms
C#

Duplicate openssl smime -decrypt -in some_file.dat.enc -binary -inform DER -inkey private.key -out some_file.dat

See more OpenSSL Examples

Demonstrates how to decrypt binary DER that was encrypted using the following openssl command:
openssl smime -encrypt -binary -aes-256-cbc -in some_file.dat -out some_file.dat.enc -outform DER cert.crt

Chilkat C# Downloads

C#
bool success = false;

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

// Duplicates the following openssl command:
// openssl smime -decrypt -in hello.txt.enc -binary -inform DER -inkey private.key -out hello.txt

Chilkat.Cert cert = new Chilkat.Cert();
success = cert.LoadFromFile("qa_data/openssl/EE.cer");
if (success == false) {
    Debug.WriteLine(cert.LastErrorText);
    return;
}

Chilkat.BinData bd = new Chilkat.BinData();
success = bd.LoadFile("qa_data/openssl/EE.key");
// Assuming success..

Chilkat.PrivateKey privKey = new Chilkat.PrivateKey();
success = privKey.LoadAnyFormat(bd,"");
if (success == false) {
    Debug.WriteLine(privKey.LastErrorText);
    return;
}

Chilkat.Crypt2 crypt = new Chilkat.Crypt2();
success = crypt.SetDecryptCert2(cert,privKey);
if (success == false) {
    Debug.WriteLine(crypt.LastErrorText);
    return;
}

crypt.CryptAlgorithm = "PKI";
success = crypt.CkDecryptFile("qa_data/openssl/hello.txt.enc","qa_output/hello.txt");
if (success == false) {
    Debug.WriteLine(crypt.LastErrorText);
    return;
}

Debug.WriteLine("Success.");