コード例 #1
0
        public EmailHeader SignMessage(Email email)
        {
            // Find the actual headers we're going to sign
            var headers = email.GetHeadersToSign(_headersToSign);

            // Generate the header value
            var value = GenerateDkimHeaderValue(email, headers);

            // Add the signature key
            headers.Add(new EmailHeader
            {
                Key   = SignatureKey,
                Value = value
            });

            // sign email
            value += GenerateSignature(email, headers);

            // Return the new header
            return(new EmailHeader
            {
                Key = SignatureKey,
                Value = value
            });
        }
コード例 #2
0
        public EmailHeader SignMessage(Email email)
        {
            var signatureValue = new StringBuilder();


            // algorithm used
            signatureValue.Append("a=");
            signatureValue.Append(_privateKeySigner.Algorithm);
            signatureValue.Append("; ");


            // Canonicalization
            signatureValue.Append("c=");
            signatureValue.Append(this.Canonicalization.ToString().ToLower());
            signatureValue.Append("; ");


            // signing domain
            signatureValue.Append("d=");
            signatureValue.Append(_domain);
            signatureValue.Append("; ");


            // headers to be signed
            var headers = email.GetHeadersToSign(_headersToSign);

            if (headers.Count > 0)
            {
                signatureValue.Append("h=");
                foreach (var header in headers)
                {
                    signatureValue.Append(header.Key);
                    signatureValue.Append(':');
                }
                signatureValue.Length--;
                signatureValue.Append("; ");
            }


            // public key location
            signatureValue.Append("q=dns; ");


            // selector
            signatureValue.Append("s=");
            signatureValue.Append(_selector);
            signatureValue.Append("; ");


            // signature data
            signatureValue.Append("b=");
            signatureValue.Append(SignSignature(email, headers));
            signatureValue.Append(";");

            return(new EmailHeader()
            {
                Key = SignatureKey, Value = signatureValue.ToString()
            });
        }
コード例 #3
0
ファイル: DkimSigner.cs プロジェクト: nuxleus/DKIM.Net
		public EmailHeader SignMessage(Email email)
		{
			// Find the actual headers we're going to sign
			var headers = email.GetHeadersToSign(_headersToSign);

			// Generate the header value
			var value = this.GenerateDkimHeaderValue(email, headers);

			// Add the signature key
			headers.Add(new EmailHeader() { Key = SignatureKey, Value = value});

			// sign email
			value += GenerateSignature(email, headers);

			// Return the new header
			return new EmailHeader() { Key = SignatureKey, Value = value };
		}
コード例 #4
0
        public EmailHeader SignMessage(Email email)
        {
            var signatureValue = new StringBuilder();

            // algorithm used
            signatureValue.Append("a=");
            signatureValue.Append(_privateKeySigner.Algorithm);
            signatureValue.Append("; ");

            // Canonicalization
            signatureValue.Append("c=");
            signatureValue.Append(this.Canonicalization.ToString().ToLower());
            signatureValue.Append("; ");

            // signing domain
            signatureValue.Append("d=");
            signatureValue.Append(_domain);
            signatureValue.Append("; ");

            // headers to be signed
            var headers = email.GetHeadersToSign(_headersToSign);
            if (headers.Count>0)
            {
                signatureValue.Append("h=");
                foreach (var header in headers)
                {
                    signatureValue.Append(header.Key);
                    signatureValue.Append(':');
                }
                signatureValue.Length--;
                signatureValue.Append("; ");
            }

            // public key location
            signatureValue.Append("q=dns; ");

            // selector
            signatureValue.Append("s=");
            signatureValue.Append(_selector);
            signatureValue.Append("; ");

            // signature data
            signatureValue.Append("b=");
            signatureValue.Append(SignSignature(email, headers));
            signatureValue.Append(";");

            return new EmailHeader() { Key = SignatureKey, Value = signatureValue.ToString() };
        }