本文整理汇总了C#中DigestAlgorithm类的典型用法代码示例。如果您正苦于以下问题:C# DigestAlgorithm类的具体用法?C# DigestAlgorithm怎么用?C# DigestAlgorithm使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DigestAlgorithm类属于命名空间,在下文中一共展示了DigestAlgorithm类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: SignedEntity
/// <summary>
/// Creates an entity consisting of the content and signature.
/// </summary>
/// <param name="algorithm">The digest algorithm used in the signature, used for the <c>micalg</c> parameter</param>
/// <param name="content">The content entity that was signed.</param>
/// <param name="signature">The signature entity</param>
public SignedEntity(DigestAlgorithm algorithm, MimeEntity content, MimeEntity signature)
: base(CreateContentType(algorithm))
{
if (content == null)
{
throw new ArgumentNullException("content");
}
Content = content;
Signature = signature;
}
开发者ID:DM-TOR,项目名称:nhin-d,代码行数:17,代码来源:SignedEntity.cs
示例2: TestSignatureOIDs
public void TestSignatureOIDs(DigestAlgorithm algo)
{
string messageText = m_tester.ReadMessageText("simple.eml");
m_cryptographer.DigestAlgorithm = algo;
SignedCms signedData = null;
Assert.DoesNotThrow(() => signedData = m_cryptographer.CreateSignature(Encoding.ASCII.GetBytes(messageText), m_cert));
Assert.True(signedData.SignerInfos.Count == 1);
Assert.True(signedData.SignerInfos[0].DigestAlgorithm.Value == SMIMECryptographer.ToDigestAlgorithmOid(algo).Value);
}
开发者ID:DM-TOR,项目名称:nhin-d,代码行数:11,代码来源:CryptographerTests.cs
示例3: CreateCipher
public virtual TlsCipher CreateCipher(TlsClientContext context,
EncryptionAlgorithm encryptionAlgorithm, DigestAlgorithm digestAlgorithm)
{
switch (encryptionAlgorithm)
{
case EncryptionAlgorithm.cls_3DES_EDE_CBC:
return CreateDesEdeCipher(context, 24, digestAlgorithm);
case EncryptionAlgorithm.AES_128_CBC:
return CreateAesCipher(context, 16, digestAlgorithm);
case EncryptionAlgorithm.AES_256_CBC:
return CreateAesCipher(context, 32, digestAlgorithm);
default:
throw new TlsFatalAlert(AlertDescription.internal_error);
}
}
开发者ID:ktw,项目名称:OutlookPrivacyPlugin,代码行数:15,代码来源:DefaultTlsCipherFactory.cs
示例4: CreateDigest
/// <exception cref="IOException"></exception>
protected virtual IDigest CreateDigest(DigestAlgorithm digestAlgorithm)
{
switch (digestAlgorithm)
{
case DigestAlgorithm.MD5:
return new MD5Digest();
case DigestAlgorithm.SHA:
return new Sha1Digest();
case DigestAlgorithm.SHA256:
return new Sha256Digest();
case DigestAlgorithm.SHA384:
return new Sha384Digest();
default:
throw new TlsFatalAlert(AlertDescription.internal_error);
}
}
开发者ID:NelsonSantos,项目名称:fyiReporting-Android,代码行数:17,代码来源:DefaultTlsCipherFactory.cs
示例5: Sign
/// <exception cref="Sharpen.NoSuchAlgorithmException"></exception>
/// <exception cref="System.IO.IOException"></exception>
public virtual byte[] Sign(Stream stream, DigestAlgorithm digestAlgo, IDssPrivateKeyEntry
keyEntry)
{
if (SignatureAlgorithm.RSA == keyEntry.GetSignatureAlgorithm())
{
IDigest digester = DigestUtilities.GetDigest(digestAlgo.GetName());
byte[] buffer = new byte[4096];
int count = 0;
while ((count = stream.Read(buffer, 0, buffer.Length)) > 0)
{
digester.BlockUpdate(buffer, 0, count);
}
byte[] digestValue = DigestUtilities.DoFinal(digester);
return EncryptDigest(digestValue, digestAlgo, keyEntry);
}
else
{
//jbonilla
throw new System.NotImplementedException("Implementar cuando no es RSA");
//Sharpen.Signature signature = Sharpen.Signature.GetInstance(keyEntry.GetSignatureAlgorithm
// ().GetJavaSignatureAlgorithm(digestAlgo));
//try
//{
// signature.InitSign(((KSPrivateKeyEntry)keyEntry).GetPrivateKey());
// byte[] buffer = new byte[4096];
// int count = 0;
// while ((count = stream.Read(buffer)) > 0)
// {
// signature.Update(buffer, 0, count);
// }
// byte[] signValue = signature.Sign();
// return signValue;
//}
//catch (SignatureException e)
//{
// throw new RuntimeException(e);
//}
//catch (InvalidKeyException e)
//{
// throw new RuntimeException(e);
//}
}
}
开发者ID:Gianluigi,项目名称:dssnet,代码行数:45,代码来源:AsyncSignatureTokenConnection.cs
示例6: Create
/// <summary>
/// Creates a new <see cref="MultipartSigned"/>.
/// </summary>
/// <remarks>
/// Cryptographically signs the entity using the supplied signer and digest algorithm in
/// order to generate a detached signature and then adds the entity along with the
/// detached signature data to a new multipart/signed part.
/// </remarks>
/// <returns>A new <see cref="MultipartSigned"/> instance.</returns>
/// <param name="signer">The signer.</param>
/// <param name="digestAlgo">The digest algorithm to use for signing.</param>
/// <param name="entity">The entity to sign.</param>
/// <exception cref="System.ArgumentNullException">
/// <para><paramref name="signer"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="entity"/> is <c>null</c>.</para>
/// </exception>
/// <exception cref="System.ArgumentException">
/// <paramref name="signer"/> cannot be used for signing.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// The <paramref name="digestAlgo"/> was out of range.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// <para>A cryptography context suitable for signing could not be found.</para>
/// <para>-or-</para>
/// <para>The <paramref name="digestAlgo"/> is not supported.</para>
/// </exception>
/// <exception cref="Org.BouncyCastle.Bcpg.OpenPgp.PgpException">
/// An error occurred in the OpenPGP subsystem.
/// </exception>
public static MultipartSigned Create (PgpSecretKey signer, DigestAlgorithm digestAlgo, MimeEntity entity)
{
using (var ctx = (OpenPgpContext) CryptographyContext.Create ("application/pgp-signature")) {
return Create (ctx, signer, digestAlgo, entity);
}
}
开发者ID:gphummer,项目名称:MimeKit,代码行数:37,代码来源:MultipartSigned.cs
示例7: EncryptDigest
/// <summary>The encryption of a digest it the atomic operation done by the SSCD.</summary>
/// <remarks>
/// The encryption of a digest it the atomic operation done by the SSCD. This encryption (RSA, DSA, ...) create the
/// signature value.
/// </remarks>
/// <param name="digestValue"></param>
/// <param name="digestAlgo"></param>
/// <param name="keyEntry"></param>
/// <returns></returns>
/// <exception cref="Sharpen.NoSuchAlgorithmException"></exception>
public abstract byte[] EncryptDigest(byte[] digestValue, DigestAlgorithm digestAlgo
, IDssPrivateKeyEntry keyEntry);
开发者ID:Gianluigi,项目名称:dssnet,代码行数:12,代码来源:AsyncSignatureTokenConnection.cs
示例8: SignAndEncrypt
/// <summary>
/// Cryptographically signs and encrypts the specified content for the specified recipients.
/// </summary>
/// <remarks>
/// Cryptographically signs and encrypts the specified content for the specified recipients.
/// </remarks>
/// <returns>A new <see cref="MimeKit.MimePart"/> instance
/// containing the encrypted data.</returns>
/// <param name="signer">The signer.</param>
/// <param name="digestAlgo">The digest algorithm to use for signing.</param>
/// <param name="recipients">The recipients.</param>
/// <param name="content">The content.</param>
/// <exception cref="System.ArgumentNullException">
/// <para><paramref name="signer"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="recipients"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="content"/> is <c>null</c>.</para>
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="digestAlgo"/> is out of range.
/// </exception>
/// <exception cref="System.ArgumentException">
/// <para>One or more of the recipient keys cannot be used for encrypting.</para>
/// <para>-or-</para>
/// <para>No recipients were specified.</para>
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The specified <see cref="DigestAlgorithm"/> is not supported by this context.
/// </exception>
/// <exception cref="PrivateKeyNotFoundException">
/// The private key could not be found for <paramref name="signer"/>.
/// </exception>
/// <exception cref="PublicKeyNotFoundException">
/// A public key could not be found for one or more of the <paramref name="recipients"/>.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The user chose to cancel the password prompt.
/// </exception>
/// <exception cref="System.UnauthorizedAccessException">
/// 3 bad attempts were made to unlock the secret key.
/// </exception>
public MimePart SignAndEncrypt (MailboxAddress signer, DigestAlgorithm digestAlgo, IEnumerable<MailboxAddress> recipients, Stream content)
{
if (signer == null)
throw new ArgumentNullException ("signer");
if (recipients == null)
throw new ArgumentNullException ("recipients");
if (content == null)
throw new ArgumentNullException ("content");
var key = GetSigningKey (signer);
return SignAndEncrypt (key, digestAlgo, GetPublicKeys (recipients), content);
}
开发者ID:ALange,项目名称:OutlookPrivacyPlugin,代码行数:57,代码来源:OpenPgpContext.cs
示例9: SignAndEncrypt
/// <summary>
/// Sign and encrypt the message to the sender and all of the recipients using
/// the specified cryptography context and the specified digest algorithm.
/// </summary>
/// <remarks>
/// <para>If either of the Resent-Sender or Resent-From headers are set, then the message
/// will be signed using the Resent-Sender (or first mailbox in the Resent-From)
/// address as the signer address, otherwise the Sender or From address will be
/// used instead.</para>
/// <para>Likewise, if either of the Resent-Sender or Resent-From headers are set, then the
/// message will be encrypted to all of the addresses specified in the Resent headers
/// (Resent-Sender, Resent-From, Resent-To, Resent-Cc, and Resent-Bcc),
/// otherwise the message will be encrypted to all of the addresses specified in
/// the standard address headers (Sender, From, To, Cc, and Bcc).</para>
/// </remarks>
/// <param name="ctx">The cryptography context.</param>
/// <param name="digestAlgo">The digest algorithm.</param>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="ctx"/> is <c>null</c>.
/// </exception>
/// <exception cref="System.ArgumentException">
/// An unknown type of cryptography context was used.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// The <paramref name="digestAlgo"/> was out of range.
/// </exception>
/// <exception cref="System.InvalidOperationException">
/// <para>The <see cref="Body"/> has not been set.</para>
/// <para>-or-</para>
/// <para>The sender has been specified.</para>
/// <para>-or-</para>
/// <para>No recipients have been specified.</para>
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <paramref name="digestAlgo"/> is not supported.
/// </exception>
/// <exception cref="CertificateNotFoundException">
/// A certificate could not be found for the signer or one or more of the recipients.
/// </exception>
/// <exception cref="PrivateKeyNotFoundException">
/// The private key could not be found for the sender.
/// </exception>
/// <exception cref="PublicKeyNotFoundException">
/// The public key could not be found for one or more of the recipients.
/// </exception>
public void SignAndEncrypt (CryptographyContext ctx, DigestAlgorithm digestAlgo)
{
if (ctx == null)
throw new ArgumentNullException ("ctx");
if (Body == null)
throw new InvalidOperationException ("No message body has been set.");
var signer = GetMessageSigner ();
if (signer == null)
throw new InvalidOperationException ("The sender has not been set.");
var recipients = GetMessageRecipients (true);
if (recipients.Count == 0)
throw new InvalidOperationException ("No recipients have been set.");
if (ctx is SecureMimeContext) {
Body = ApplicationPkcs7Mime.SignAndEncrypt ((SecureMimeContext) ctx, signer, digestAlgo, recipients, Body);
} else if (ctx is OpenPgpContext) {
Body = MultipartEncrypted.SignAndEncrypt ((OpenPgpContext) ctx, signer, digestAlgo, recipients, Body);
} else {
throw new ArgumentException ("Unknown type of cryptography context.", "ctx");
}
}
开发者ID:yukine,项目名称:MimeKit,代码行数:69,代码来源:MimeMessage.cs
示例10: GetHashAlgorithm
/// <summary>
/// Gets the equivalent <see cref="Org.BouncyCastle.Bcpg.HashAlgorithmTag"/> for the
/// specified <see cref="DigestAlgorithm"/>.
/// </summary>
/// <remarks>
/// Maps a <see cref="DigestAlgorithm"/> to the equivalent <see cref="Org.BouncyCastle.Bcpg.HashAlgorithmTag"/>.
/// </remarks>
/// <returns>The hash algorithm.</returns>
/// <param name="digestAlgo">The digest algorithm.</param>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="digestAlgo"/> is out of range.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// <paramref name="digestAlgo"/> does not have an equivalent
/// <see cref="Org.BouncyCastle.Bcpg.HashAlgorithmTag"/> value.
/// </exception>
public static HashAlgorithmTag GetHashAlgorithm (DigestAlgorithm digestAlgo)
{
switch (digestAlgo) {
case DigestAlgorithm.MD5: return HashAlgorithmTag.MD5;
case DigestAlgorithm.Sha1: return HashAlgorithmTag.Sha1;
case DigestAlgorithm.RipeMD160: return HashAlgorithmTag.RipeMD160;
case DigestAlgorithm.DoubleSha: return HashAlgorithmTag.DoubleSha;
case DigestAlgorithm.MD2: return HashAlgorithmTag.MD2;
case DigestAlgorithm.Tiger192: return HashAlgorithmTag.Tiger192;
case DigestAlgorithm.Haval5160: return HashAlgorithmTag.Haval5pass160;
case DigestAlgorithm.Sha256: return HashAlgorithmTag.Sha256;
case DigestAlgorithm.Sha384: return HashAlgorithmTag.Sha384;
case DigestAlgorithm.Sha512: return HashAlgorithmTag.Sha512;
case DigestAlgorithm.Sha224: return HashAlgorithmTag.Sha224;
case DigestAlgorithm.MD4: throw new NotSupportedException ("The MD4 digest algorithm is not supported.");
default: throw new ArgumentOutOfRangeException ("digestAlgo");
}
}
开发者ID:ALange,项目名称:OutlookPrivacyPlugin,代码行数:34,代码来源:OpenPgpContext.cs
示例11: CreateDesEdeCipher
/// <exception cref="IOException"></exception>
protected virtual TlsCipher CreateDesEdeCipher(TlsClientContext context, int cipherKeySize,
DigestAlgorithm digestAlgorithm)
{
return new TlsBlockCipher(context, CreateDesEdeBlockCipher(), CreateDesEdeBlockCipher(),
CreateDigest(digestAlgorithm), CreateDigest(digestAlgorithm), cipherKeySize);
}
开发者ID:NelsonSantos,项目名称:fyiReporting-Android,代码行数:7,代码来源:DefaultTlsCipherFactory.cs
示例12: SetAlgorithm
/// <param name="algorithm">the algorithm to set</param>
public virtual void SetAlgorithm(DigestAlgorithm algorithm)
{
this.algorithm = algorithm;
}
开发者ID:Gianluigi,项目名称:dssnet,代码行数:5,代码来源:Digest.cs
示例13: Create
/// <summary>
/// Creates a new <see cref="MultipartEncrypted"/>.
/// </summary>
/// <remarks>
/// Signs the entity using the supplied signer and digest algorithm and then encrypts to
/// the specified recipients, encapsulating the result in a new multipart/encrypted part.
/// </remarks>
/// <returns>A new <see cref="MimeKit.Cryptography.MultipartEncrypted"/> instance containing
/// the signed and encrypted version of the specified entity.</returns>
/// <param name="signer">The signer to use to sign the entity.</param>
/// <param name="digestAlgo">The digest algorithm to use for signing.</param>
/// <param name="recipients">The recipients for the encrypted entity.</param>
/// <param name="entity">The entity to sign and encrypt.</param>
/// <exception cref="System.ArgumentNullException">
/// <para><paramref name="signer"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="recipients"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="entity"/> is <c>null</c>.</para>
/// </exception>
/// <exception cref="System.ArgumentException">
/// <para><paramref name="signer"/> cannot be used for signing.</para>
/// <para>-or-</para>
/// <para>One or more of the recipient keys cannot be used for encrypting.</para>
/// <para>-or-</para>
/// <para>No recipients were specified.</para>
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// The <paramref name="digestAlgo"/> was out of range.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// <para>A default <see cref="OpenPgpContext"/> has not been registered.</para>
/// <para>-or-</para>
/// <para>The <paramref name="digestAlgo"/> is not supported.</para>
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The user chose to cancel the password prompt.
/// </exception>
/// <exception cref="System.UnauthorizedAccessException">
/// 3 bad attempts were made to unlock the secret key.
/// </exception>
public static MultipartEncrypted Create (PgpSecretKey signer, DigestAlgorithm digestAlgo, IEnumerable<PgpPublicKey> recipients, MimeEntity entity)
{
if (signer == null)
throw new ArgumentNullException ("signer");
if (recipients == null)
throw new ArgumentNullException ("recipients");
if (entity == null)
throw new ArgumentNullException ("entity");
using (var ctx = (OpenPgpContext) CryptographyContext.Create ("application/pgp-encrypted")) {
return Create (ctx, signer, digestAlgo, recipients, entity);
}
}
开发者ID:richard2753,项目名称:MimeKit,代码行数:56,代码来源:MultipartEncrypted.cs
示例14: CreateRC4Cipher
/// <exception cref="IOException"></exception>
protected virtual TlsCipher CreateRC4Cipher(TlsClientContext context, int cipherKeySize, DigestAlgorithm digestAlgorithm)
{
return new TlsStreamCipher(context, CreateRC4StreamCipher(), CreateRC4StreamCipher(), CreateDigest(digestAlgorithm), CreateDigest(digestAlgorithm), cipherKeySize);
}
开发者ID:NelsonSantos,项目名称:fyiReporting-Android,代码行数:5,代码来源:DefaultTlsCipherFactory.cs
示例15: Sign
/// <summary>
/// Cryptographically signs the content.
/// </summary>
/// <remarks>
/// Cryptographically signs the content using the specified signer and digest algorithm.
/// </remarks>
/// <returns>A new <see cref="MimeKit.MimePart"/> instance
/// containing the detached signature data.</returns>
/// <param name="signer">The signer.</param>
/// <param name="digestAlgo">The digest algorithm to use for signing.</param>
/// <param name="content">The content.</param>
/// <exception cref="System.ArgumentNullException">
/// <para><paramref name="signer"/> is <c>null</c>.</para>
/// <para>-or-</para>
/// <para><paramref name="content"/> is <c>null</c>.</para>
/// </exception>
/// <exception cref="System.ArgumentException">
/// <paramref name="signer"/> cannot be used for signing.
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// The <paramref name="digestAlgo"/> was out of range.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <paramref name="digestAlgo"/> is not supported.
/// </exception>
/// <exception cref="System.OperationCanceledException">
/// The user chose to cancel the password prompt.
/// </exception>
/// <exception cref="System.UnauthorizedAccessException">
/// 3 bad attempts were made to unlock the secret key.
/// </exception>
public ApplicationPgpSignature Sign (PgpSecretKey signer, DigestAlgorithm digestAlgo, Stream content)
{
if (signer == null)
throw new ArgumentNullException ("signer");
if (!signer.IsSigningKey)
throw new ArgumentException ("The specified secret key cannot be used for signing.", "signer");
if (content == null)
throw new ArgumentNullException ("content");
var hashAlgorithm = GetHashAlgorithm (digestAlgo);
var memory = new MemoryBlockStream ();
using (var armored = new ArmoredOutputStream (memory)) {
var compresser = new PgpCompressedDataGenerator (CompressionAlgorithmTag.ZLib);
using (var compressed = compresser.Open (armored)) {
var signatureGenerator = new PgpSignatureGenerator (signer.PublicKey.Algorithm, hashAlgorithm);
var buf = new byte[4096];
int nread;
signatureGenerator.InitSign (PgpSignature.CanonicalTextDocument, GetPrivateKey (signer));
while ((nread = content.Read (buf, 0, buf.Length)) > 0)
signatureGenerator.Update (buf, 0, nread);
var signature = signatureGenerator.Generate ();
signature.Encode (compressed);
compressed.Flush ();
}
armored.Flush ();
}
memory.Position = 0;
return new ApplicationPgpSignature (memory);
}
开发者ID:ALange,项目名称:OutlookPrivacyPlugin,代码行数:70,代码来源:OpenPgpContext.cs
示例16: GetCmsSigner
/// <summary>
/// Gets the <see cref="CmsSigner"/> for the specified mailbox.
/// </summary>
/// <returns>A <see cref="CmsSigner"/>.</returns>
/// <param name="mailbox">The mailbox.</param>
/// <param name="digestAlgo">The preferred digest algorithm.</param>
/// <exception cref="CertificateNotFoundException">
/// A certificate for the specified <paramref name="mailbox"/> could not be found.
/// </exception>
protected override CmsSigner GetCmsSigner (MailboxAddress mailbox, DigestAlgorithm digestAlgo)
{
var now = DateTime.Now;
foreach (var certificate in certificates) {
AsymmetricKeyParameter key;
if (certificate.NotBefore > now || certificate.NotAfter < now)
continue;
var keyUsage = certificate.GetKeyUsageFlags ();
if (keyUsage != 0 && (keyUsage & SecureMimeContext.DigitalSignatureKeyUsageFlags) == 0)
continue;
if (!keys.TryGetValue (certificate, out key))
continue;
if (certificate.GetSubjectEmailAddress () == mailbox.Address) {
var signer = new CmsSigner (certificate, key);
signer.DigestAlgorithm = digestAlgo;
return signer;
}
}
throw new CertificateNotFoundException (mailbox, "A valid signing certificate could not be found.");
}
开发者ID:ruffin--,项目名称:MimeKit,代码行数:35,代码来源:DummySecureMimeContext.cs
示例17: GetMicAlgorithmName
/// <summary>
/// Gets the string name of the digest algorithm for use with the micalg parameter of a multipart/signed part.
/// </summary>
/// <returns>The micalg value.</returns>
/// <param name="micalg">The digest algorithm.</param>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="micalg"/> is out of range.
/// </exception>
public override string GetMicAlgorithmName(DigestAlgorithm micalg)
{
switch (micalg) {
case DigestAlgorithm.MD5: return "md5";
case DigestAlgorithm.Sha1: return "sha1";
case DigestAlgorithm.RipeMD160: return "ripemd160";
case DigestAlgorithm.MD2: return "md2";
case DigestAlgorithm.Tiger192: return "tiger192";
case DigestAlgorithm.Haval5160: return "haval-5-160";
case DigestAlgorithm.Sha256: return "sha256";
case DigestAlgorithm.Sha384: return "sha384";
case DigestAlgorithm.Sha512: return "sha512";
case DigestAlgorithm.Sha224: return "sha224";
case DigestAlgorithm.MD4: return "md4";
default: throw new ArgumentOutOfRangeException ("micalg");
}
}
开发者ID:princeoffoods,项目名称:MimeKit,代码行数:25,代码来源:SecureMimeContext.cs
示例18: Sign
/// <summary>
/// Sign the message using the specified cryptography context and digest algorithm.
/// </summary>
/// <remarks>
/// If either of the Resent-Sender or Resent-From headers are set, then the message
/// will be signed using the Resent-Sender (or first mailbox in the Resent-From)
/// address as the signer address, otherwise the Sender or From address will be
/// used instead.
/// </remarks>
/// <param name="ctx">The cryptography context.</param>
/// <param name="digestAlgo">The digest algorithm.</param>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="ctx"/> is <c>null</c>.
/// </exception>
/// <exception cref="System.InvalidOperationException">
/// <para>The <see cref="Body"/> has not been set.</para>
/// <para>-or-</para>
/// <para>A sender has not been specified.</para>
/// </exception>
/// <exception cref="System.ArgumentOutOfRangeException">
/// The <paramref name="digestAlgo"/> was out of range.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The <paramref name="digestAlgo"/> is not supported.
/// </exception>
/// <exception cref="CertificateNotFoundException">
/// A signing certificate could not be found for the sender.
/// </exception>
/// <exception cref="PrivateKeyNotFoundException">
/// The private key could not be found for the sender.
/// </exception>
public void Sign (CryptographyContext ctx, DigestAlgorithm digestAlgo)
{
if (ctx == null)
throw new ArgumentNullException ("ctx");
if (Body == null)
throw new InvalidOperationException ("No message body has been set.");
var signer = GetMessageSigner ();
if (signer == null)
throw new InvalidOperationException ("The sender has not been set.");
Body = MultipartSigned.Create (ctx, signer, digestAlgo, Body);
}
开发者ID:yukine,项目名称:MimeKit,代码行数:45,代码来源:MimeMessage.cs
示例19: GetDigestOid
/// <summary>
/// Gets the digest oid.
/// </summary>
/// <returns>The digest oid.</returns>
/// <param name="digestAlgo">The digest algorithm.</param>
/// <exception cref="System.ArgumentOutOfRangeException">
/// <paramref name="digestAlgo"/> is out of range.
/// </exception>
/// <exception cref="System.NotSupportedException">
/// The specified <see cref="DigestAlgorithm"/> is not supported by this context.
/// </exception>
protected static string GetDigestOid(DigestAlgorithm digestAlgo)
{
switch (digestAlgo) {
case DigestAlgorithm.MD5: return PkcsObjectIdentifiers.MD5.Id;
case DigestAlgorithm.Sha1: return PkcsObjectIdentifiers.Sha1WithRsaEncryption.Id;
case DigestAlgorithm.MD2: return PkcsObjectIdentifiers.MD2.Id;
case DigestAlgorithm.Sha256: return PkcsObjectIdentifiers.Sha256WithRsaEncryption.Id;
case DigestAlgorithm.Sha384: return PkcsObjectIdentifiers.Sha384WithRsaEncryption.Id;
case DigestAlgorithm.Sha512: return PkcsObjectIdentifiers.Sha512WithRsaEncryption.Id;
case DigestAlgorithm.Sha224: return PkcsObjectIdentifiers.Sha224WithRsaEncryption.Id;
case DigestAlgorithm.MD4: return PkcsObjectIdentifiers.MD4.Id;
case DigestAlgorithm.RipeMD160:
case DigestAlgorithm.DoubleSha:
case DigestAlgorithm.Tiger192:
case DigestAlgorithm.Haval5160:
throw new NotSupportedException ();
default:
throw new ArgumentOutOfRangeException ();
}
}
开发者ID:princeoffoods,项目名称:MimeKit,代码行数:31,代码来源:SecureMimeContext.cs
示例20: Digest
public Digest(DigestAlgorithm algorithm, byte[] value)
: base()
{
this.algorithm = algorithm;
this.value = value;
}
开发者ID:Gianluigi,项目名称:dssnet,代码行数:6,代码来源:Digest.cs
注:本文中的DigestAlgorithm类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论