private void ComputeSignature() { PreDigestedSignedInfo signedInfo = new PreDigestedSignedInfo(_dictionaryManager); signedInfo.AddEnvelopedSignatureTransform = true; signedInfo.CanonicalizationMethod = XD.ExclusiveC14NDictionary.Namespace.Value; signedInfo.SignatureMethod = _signingCreds.SignatureAlgorithm; signedInfo.DigestMethod = _signingCreds.DigestAlgorithm; signedInfo.AddReference(_referenceId, _hashStream.FlushHashAndGetValue(_preCanonicalTracingStream)); SignedXml signedXml = new SignedXml(signedInfo, _dictionaryManager, _tokenSerializer); signedXml.ComputeSignature(_signingCreds.SigningKey); signedXml.Signature.KeyIdentifier = _signingCreds.SigningKeyIdentifier; signedXml.WriteTo(base.InnerWriter); ((IDisposable)_hashStream).Dispose(); _hashStream = null; }