Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicPythonRubySQL ServerSwiftTclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcel

C# UWP/WinRT Examples


ASN.1
Amazon S3
Amazon S3 (new)
Amazon SES
Amazon SNS
Amazon SQS
Azure Cloud Storage
Azure Service Bus
Bounced Email
Box
CSR
CSV
Certificates
Compression
DKIM / DomainKey
DSA
Diffie-Hellman
Digital Signatures
Dropbox
ECC
Email Object
Encryption
FTP
Facebook
Firebase
GeoOp
Google APIs
Google Calendar
Google Cloud Storage
Google Drive
Gzip
HTML-to-XML/Text
HTTP
HTTP Misc
IMAP
JSON
JSON Web Encryption (JWE)
JSON Web Signatures (JWS)
JSON Web Token (JWT)

Java KeyStore (JKS)
MHT / HTML Email
MIME
Microsoft Graph
NTLM
OAuth1
OAuth2
OneDrive
OpenSSL
Outlook
PEM
PFX/P12
POP3
PRNG
PayPal
Peoplevox
QuickBooks
REST
RSA Encryption
SCP
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
SharePoint
Shopify
Socket/SSL/TLS
Spider
Stream
Stripe
SugarCRM
Tar Archive
Twitter
VoiceBase
Walmart
WebSocket
XML
XML Digital Signatures
XMP
Xero
Zip
curl
eBay

 

 

 

(C# UWP/WinRT) Encrypt a file to a PKCS7 encrypted message using multiple certificates from different users

Demonstrates how to encrypt a file to a PKCS7 encrypted message using multiple certificates from different users. Any one of the users can decrypt using his/her own certificate + private key.

Note: When doing public key encryption, it is the public key that is used to encrypt. The private key is required for decryption.

Chilkat Universal Windows Platform (UWP) / WinRT Downloads

Chilkat for the Universal Windows Platform (UWP)

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

Chilkat.Crypt2 crypt = new Chilkat.Crypt2();

//  Tell the crypt object to use 3 certificates.
//  Do this by calling AddEncryptCert for each certificate.

//  Load a digital certificate.
//  We don't need the private key for encryption.
//  Only the public key is needed (which is included in a certificate).
Chilkat.Cert cert1 = new Chilkat.Cert();
bool success = cert1.LoadFromFile("qa_data/user1/cert_user1.pem");
//  Assume success for the example, but make sure your application checks for success/failure...
crypt.AddEncryptCert(cert1);

Chilkat.Cert cert2 = new Chilkat.Cert();
success = cert2.LoadFromFile("qa_data/user2/cert_user2.pem");
crypt.AddEncryptCert(cert2);

Chilkat.Cert cert3 = new Chilkat.Cert();
success = cert3.LoadFromFile("qa_data/user3/cert_user3.pem");
crypt.AddEncryptCert(cert3);

//  Indicate that we want PKI encryption (i.e. public-key infrastructure)
//  to produce a CMS message (Cryptographic Message Syntax/PKCS7),
//  that is be created with RSAES-OAEP padding, SHA256, and AES-128 for the
//  bulk encryption.
crypt.CryptAlgorithm = "pki";
crypt.Pkcs7CryptAlg = "aes";
crypt.KeyLength = 128;
crypt.OaepHash = "sha256";
crypt.OaepPadding = true;

//  Load the file to be encrypted...
Chilkat.BinData fileData = new Chilkat.BinData();
success = fileData.LoadFile("qa_data/jpg/penguins.jpg");
//  Your app should check for success/failure..

//  Encrypt the data.  The contents of the fileData object are replaced with the PKCS7 encrypted message.
success = crypt.EncryptBd(fileData);
if (success != true) {
    Debug.WriteLine(crypt.LastErrorText);
    return;
}

//  Save the PKCS7 encrypted message to a file..
success = fileData.WriteFile("qa_output/pkcs7_encrypted.p7");

//  Now indicate that the PKCS7 output is to be returned in the base64 encoding.
crypt.EncodingMode = "base64";

Debug.WriteLine("OK.");

 

© 2000-2016 Chilkat Software, Inc. All Rights Reserved.