DSAKeyValue 构造函数
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
初始化 DSAKeyValue 类的新实例。
重载
DSAKeyValue() |
用新的、随机生成的 DSA 公钥初始化 DSAKeyValue 类的新实例。 |
DSAKeyValue(DSA) |
用指定的 DSA 公钥初始化 DSAKeyValue 类的新实例。 |
DSAKeyValue()
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
用新的、随机生成的 DSA 公钥初始化 DSAKeyValue 类的新实例。
public:
DSAKeyValue();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public DSAKeyValue ();
public DSAKeyValue ();
Public Sub New ()
- 属性
注解
创建新DSA键时,此构造函数使用 类定义的 CryptoConfig 的默认实现DSA。
适用于
DSAKeyValue(DSA)
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
- Source:
- DSAKeyValue.cs
用指定的 DSA 公钥初始化 DSAKeyValue 类的新实例。
public:
DSAKeyValue(System::Security::Cryptography::DSA ^ key);
public DSAKeyValue (System.Security.Cryptography.DSA key);
new System.Security.Cryptography.Xml.DSAKeyValue : System.Security.Cryptography.DSA -> System.Security.Cryptography.Xml.DSAKeyValue
Public Sub New (key As DSA)
参数
示例
下面的代码示例演示如何在 XML 加密中使用 DSAKeyValue 类。
// Sign an XML file and save the signature in a new file.
void SignDetachedResource( String^ URIString, String^ XmlSigFileName, DSA^ DSAKey )
{
// Create a SignedXml Object*.
SignedXml^ signedXml = gcnew SignedXml;
// Assign the DSA key to the SignedXml object.
signedXml->SigningKey = DSAKey;
// Create a reference to be signed.
Reference^ reference = gcnew Reference;
// Add the passed URI to the reference object.
reference->Uri = URIString;
// Add the reference to the SignedXml object.
signedXml->AddReference( reference );
// Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
KeyInfo^ keyInfo = gcnew KeyInfo;
keyInfo->AddClause( gcnew DSAKeyValue( safe_cast<DSA^>(DSAKey) ) );
signedXml->KeyInfo = keyInfo;
// Compute the signature.
signedXml->ComputeSignature();
// Get the XML representation of the signature and save
// it to an XmlElement object.
XmlElement^ xmlDigitalSignature = signedXml->GetXml();
// Save the signed XML document to a file specified
// using the passed string.
XmlTextWriter^ xmltw = gcnew XmlTextWriter( XmlSigFileName,gcnew UTF8Encoding( false ) );
xmlDigitalSignature->WriteTo( xmltw );
xmltw->Close();
}
// Sign an XML file and save the signature in a new file.
public static void SignDetachedResource(string URIString, string XmlSigFileName, DSA DSAKey)
{
// Create a SignedXml object.
SignedXml signedXml = new SignedXml();
// Assign the DSA key to the SignedXml object.
signedXml.SigningKey = DSAKey;
// Create a reference to be signed.
Reference reference = new Reference();
// Add the passed URI to the reference object.
reference.Uri = URIString;
// Add the reference to the SignedXml object.
signedXml.AddReference(reference);
// Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new DSAKeyValue((DSA)DSAKey));
signedXml.KeyInfo = keyInfo;
// Compute the signature.
signedXml.ComputeSignature();
// Get the XML representation of the signature and save
// it to an XmlElement object.
XmlElement xmlDigitalSignature = signedXml.GetXml();
// Save the signed XML document to a file specified
// using the passed string.
XmlTextWriter xmltw = new XmlTextWriter(XmlSigFileName, new UTF8Encoding(false));
xmlDigitalSignature.WriteTo(xmltw);
xmltw.Close();
}
' Sign an XML file and save the signature in a new file.
Public Shared Sub SignDetachedResource(URIString As String, XmlSigFileName As String, DSAKey As DSA)
' Create a SignedXml object.
Dim signedXml As New SignedXml()
' Assign the DSA key to the SignedXml object.
signedXml.SigningKey = DSAKey
' Create a reference to be signed.
Dim reference As New Reference()
' Add the passed URI to the reference object.
reference.Uri = URIString
' Add the reference to the SignedXml object.
signedXml.AddReference(reference)
' Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
Dim keyInfo As New KeyInfo()
keyInfo.AddClause(New DSAKeyValue(CType(DSAKey, DSA)))
signedXml.KeyInfo = keyInfo
' Compute the signature.
signedXml.ComputeSignature()
' Get the XML representation of the signature and save
' it to an XmlElement object.
Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()
' Save the signed XML document to a file specified
' using the passed string.
Dim xmltw As New XmlTextWriter(XmlSigFileName, New UTF8Encoding(False))
xmlDigitalSignature.WriteTo(xmltw)
xmltw.Close()
End Sub
// Sign an XML file and save the signature in a new file.
void SignXmlFile( String^ FileName, String^ SignedFileName, DSA^ DSAKey )
{
// Create a new XML document.
XmlDocument^ doc = gcnew XmlDocument;
// Format the document to ignore white spaces.
doc->PreserveWhitespace = false;
// Load the passed XML file using its name.
doc->Load( gcnew XmlTextReader( FileName ) );
// Create a SignedXml object.
SignedXml^ signedXml = gcnew SignedXml( doc );
// Add the DSA key to the SignedXml document.
signedXml->SigningKey = DSAKey;
// Create a reference to be signed.
Reference^ reference = gcnew Reference;
reference->Uri = "";
// Add a transformation to the reference.
Transform^ trns = gcnew XmlDsigC14NTransform;
reference->AddTransform( trns );
// Add an enveloped transformation to the reference.
XmlDsigEnvelopedSignatureTransform^ env = gcnew XmlDsigEnvelopedSignatureTransform;
reference->AddTransform( env );
// Add the reference to the SignedXml object.
signedXml->AddReference( reference );
// Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
KeyInfo^ keyInfo = gcnew KeyInfo;
keyInfo->AddClause( gcnew DSAKeyValue( safe_cast<DSA^>(DSAKey) ) );
signedXml->KeyInfo = keyInfo;
// Compute the signature.
signedXml->ComputeSignature();
// Get the XML representation of the signature and save
// it to an XmlElement object.
XmlElement^ xmlDigitalSignature = signedXml->GetXml();
// Append the element to the XML document.
doc->DocumentElement->AppendChild( doc->ImportNode( xmlDigitalSignature, true ) );
if ( (doc->FirstChild)->GetType() == XmlDeclaration::typeid )
{
doc->RemoveChild( doc->FirstChild );
}
// Save the signed XML document to a file specified
// using the passed string.
XmlTextWriter^ xmltw = gcnew XmlTextWriter( SignedFileName,gcnew UTF8Encoding( false ) );
doc->WriteTo( xmltw );
xmltw->Close();
}
// Sign an XML file and save the signature in a new file.
public static void SignXmlFile(string FileName, string SignedFileName, DSA DSAKey)
{
// Create a new XML document.
XmlDocument doc = new XmlDocument();
// Format the document to ignore white spaces.
doc.PreserveWhitespace = false;
// Load the passed XML file using it's name.
doc.Load(new XmlTextReader(FileName));
// Create a SignedXml object.
SignedXml signedXml = new SignedXml(doc);
// Add the DSA key to the SignedXml document.
signedXml.SigningKey = DSAKey;
// Create a reference to be signed.
Reference reference = new Reference();
reference.Uri = "";
// Add a transformation to the reference.
Transform trns = new XmlDsigC14NTransform();
reference.AddTransform(trns);
// Add an enveloped transformation to the reference.
XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform();
reference.AddTransform(env);
// Add the reference to the SignedXml object.
signedXml.AddReference(reference);
// Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
KeyInfo keyInfo = new KeyInfo();
keyInfo.AddClause(new DSAKeyValue((DSA)DSAKey));
signedXml.KeyInfo = keyInfo;
// Compute the signature.
signedXml.ComputeSignature();
// Get the XML representation of the signature and save
// it to an XmlElement object.
XmlElement xmlDigitalSignature = signedXml.GetXml();
// Append the element to the XML document.
doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, true));
if (doc.FirstChild is XmlDeclaration)
{
doc.RemoveChild(doc.FirstChild);
}
// Save the signed XML document to a file specified
// using the passed string.
XmlTextWriter xmltw = new XmlTextWriter(SignedFileName, new UTF8Encoding(false));
doc.WriteTo(xmltw);
xmltw.Close();
}
' Sign an XML file and save the signature in a new file.
Public Shared Sub SignXmlFile(FileName As String, SignedFileName As String, DSAKey As DSA)
' Create a new XML document.
Dim doc As New XmlDocument()
' Format the document to ignore white spaces.
doc.PreserveWhitespace = False
' Load the passed XML file using it's name.
doc.Load(New XmlTextReader(FileName))
' Create a SignedXml object.
Dim signedXml As New SignedXml(doc)
' Add the DSA key to the SignedXml document.
signedXml.SigningKey = DSAKey
' Create a reference to be signed.
Dim reference As New Reference()
reference.Uri = ""
' Add a transformation to the reference.
Dim trns = New XmlDsigC14NTransform()
reference.AddTransform(trns)
' Add an enveloped transformation to the reference.
Dim env As New XmlDsigEnvelopedSignatureTransform()
reference.AddTransform(env)
' Add the reference to the SignedXml object.
signedXml.AddReference(reference)
' Add a DSAKeyValue to the KeyInfo (optional; helps recipient find key to validate).
Dim keyInfo As New KeyInfo()
keyInfo.AddClause(New DSAKeyValue(CType(DSAKey, DSA)))
signedXml.KeyInfo = keyInfo
' Compute the signature.
signedXml.ComputeSignature()
' Get the XML representation of the signature and save
' it to an XmlElement object.
Dim xmlDigitalSignature As XmlElement = signedXml.GetXml()
' Append the element to the XML document.
doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, True))
If TypeOf doc.FirstChild Is XmlDeclaration Then
doc.RemoveChild(doc.FirstChild)
End If
' Save the signed XML document to a file specified
' using the passed string.
Dim xmltw As New XmlTextWriter(SignedFileName, New UTF8Encoding(False))
doc.WriteTo(xmltw)
xmltw.Close()
End Sub