GDSecureMimeEncoder Class |
Namespace: GD
public sealed class GDSecureMimeEncoder
The GDSecureMimeEncoder type exposes the following members.
Name | Description | |
---|---|---|
GDSecureMimeEncoder | Initializes new GDSecureMimeEncoder object based on binary data of message passed as argument. |
Name | Description | |
---|---|---|
Encrypt | Encrypts the stream using the recipient's public key. | |
Equals | (Inherited from Object.) | |
FlushAsync | Flushes all previously invoked operations in an asynchronous operation. If one of operations fail, method throws exception. | |
GetHashCode | (Inherited from Object.) | |
GetType | (Inherited from Object.) | |
Sign(GDSecureMimeCertificate, GDSMIMEDigest, GDSMIMESignFormat) | Signs a message. | |
Sign(GDSecureMimeCertificate, IListGDSecureMimeCertificate, GDSMIMEDigest, GDSMIMESignFormat) | Signs a message. | |
ToString | (Inherited from Object.) |
The following example show how to sign and encrypt message using GDSecureMimeEncoder class. We assume that needed certificates are already in local secure store.
1. First of all you have to add proper using statements at the top of your code file.
using Windows.Security.Cryptography; using System.Collections.Generic; using Windows.Storage.Streams; using System.Diagnostics; using System; using GD; ...
2. Next you can build code for sign and encrypt message using GDSecureMimeEncoder like that.
... string message = "From:foo.bar@blackberry.com\r\nTo:john.doe@blackberry.com\r\n\r\nhello." IBuffer messageBuffer = CryptographicBuffer.ConvertStringToBinary(message, BinaryStringEncoding.Utf8); string email = "john.doe@blackberry.com"; IList<GDSecureMimeCertificate> recipientCerts = GDSecureMimeCertificate.GetCertificates(email); IList<GDSecureMimeCertificate> signingCerts = GDSecureMimeCertificate.GetSigningCertificates(); GDSecureMimeEncoder encoder = new GDSecureMimeEncoder(messageBuffer); encoder.Sign(signingCerts[0], GDSMIMEDigest.RSA_SHA1, GDSMIMESignFormat.OpaqueSigned); encoder.Encrypt(recipientCerts, GDSMIMECipher.AES_256_CBC); IBuffer smimeMessageBuffer; try { smimeMessageBuffer = await encoder.FlushAsync(); } catch(InvalidArgumentException e) { Debug.WriteLine("InvalidArgumentException thrown when encoding for SMIME. Message: {0}", e.Message); return; } catch(Exception e) { Debug.WriteLine("Exception thrown when encoding for SMIME. Message: {0}", e.Message); return; } ...