public static byte[] GetSignature(X509Certificate2 certificate, string domain) { byte[] buffer = FederatedDomainProofAlgorithm.Canonicalize(domain); byte[] result; using (SHA1CryptoServiceProvider sha1CryptoServiceProvider = new SHA1CryptoServiceProvider()) { RSACryptoServiceProvider rsacryptoServiceProvider = certificate.PrivateKey as RSACryptoServiceProvider; result = rsacryptoServiceProvider.SignData(buffer, sha1CryptoServiceProvider); } return(result); }
public ManageDelegation2Client(string domain, string signingDomain, string certificateThumbprint, WriteVerboseDelegate writeVerbose) : base(LiveConfiguration.GetDomainServices2Epr().ToString(), certificateThumbprint, writeVerbose) { this.manageDelegation = new ManageDelegation2("ManageDelegation2", new RemoteCertificateValidationCallback(ManageDelegationClient.InvalidCertificateHandler)); this.manageDelegation.Authenticator = SoapHttpClientAuthenticator.Create(base.Certificate); this.manageDelegation.DomainOwnershipProofHeaderValue = new DomainOwnershipProofHeader { Domain = domain, HashAlgorithm = "SHA-512", Signature = Convert.ToBase64String(FederatedDomainProofAlgorithm.GetSignature(base.Certificate, signingDomain)) }; }