public override void Serialize(Stream aStream, object aObject)
{
/* check for required parameters */
if (aStream == null) {
throw new ArgumentNullException("aStream");
}
if (aObject == null) {
throw new ArgumentNullException("aObject");
}
PasswordFinder pwFinder = null;
if (GetPassphraseCallbackMethod != null) {
pwFinder = new PasswordFinder(GetPassphraseCallbackMethod);
}
StreamWriter streamWriter = new StreamWriter(aStream);
PemWriter writer = new PemWriter(streamWriter);
PinnedArray<char> passphrase = null;
if (pwFinder != null) {
passphrase = new PinnedArray<char>(0);
passphrase.Data = pwFinder.GetPassword();
}
if (passphrase == null) {
writer.WriteObject(aObject);
} else {
writer.WriteObject(aObject, null, passphrase.Data, null);
passphrase.Dispose();
}
}