public abstract ExportParameters ( bool includePrivateParameters ) : |
||
includePrivateParameters | bool | |
return |
public void ImportCspBlob(byte[] keyBlob) { if (keyBlob == null) { throw new ArgumentNullException("keyBlob"); } DSA dsa = CryptoConvert.FromCapiKeyBlobDSA(keyBlob); if (dsa is DSACryptoServiceProvider) { DSAParameters dsap = dsa.ExportParameters(!(dsa as DSACryptoServiceProvider).PublicOnly); ImportParameters(dsap); } else { // we can't know from DSA if the private key is available try { // so we try it... DSAParameters dsap = dsa.ExportParameters(true); ImportParameters(dsap); } catch { // and fall back DSAParameters dsap = dsa.ExportParameters(false); ImportParameters(dsap); } } }
public void ImportCspBlob(byte[] keyBlob) { if (keyBlob == null) { throw new ArgumentNullException("keyBlob"); } DSA dsa = CryptoConvert.FromCapiKeyBlobDSA(keyBlob); if (dsa is DSACryptoServiceProvider) { DSAParameters parameters = dsa.ExportParameters(!(dsa as DSACryptoServiceProvider).PublicOnly); this.ImportParameters(parameters); } else { try { DSAParameters parameters2 = dsa.ExportParameters(true); this.ImportParameters(parameters2); } catch { DSAParameters parameters3 = dsa.ExportParameters(false); this.ImportParameters(parameters3); } } }
/// <summary> /// Initializes this instance of an DSA signature algorithm. /// </summary> /// <param name="dsa">DSA cryptographic service provider to use.</param> private void InitializeAlgorithm(System.Security.Cryptography.DSA dsa) { this.dsa = dsa; //Compute the identity. DSAParameters parameters = dsa.ExportParameters(false); this.identity = new DSAIdentity(parameters); }
public override void Write(System.IO.BinaryWriter stream) { //Write P, Q, G, and Y. DSAParameters parameters = dsa.ExportParameters(false); WriteBytes(stream, parameters.P); WriteBytes(stream, parameters.Q); WriteBytes(stream, parameters.G); WriteBytes(stream, parameters.Y); }
/// <summary> /// Create a public key block from a private key. /// </summary> /// <param name="privateKey">The <see cref="DSA" /> PrivateKey.</param> /// <returns>The <see cref="DSACryptoServiceProvider" /> PublicKey.</returns> public static DSACryptoServiceProvider make_pubkey(DSA privateKey) { var publicKey = new DSACryptoServiceProvider(1024); publicKey.ImportParameters(privateKey.ExportParameters(false)); if (!publicKey.PublicOnly) { publicKey.Dispose(); throw new Exception("PublicKey contains PrivateKey information, cancelling."); } return publicKey; }
static public byte[] Encode (DSA dsa) { DSAParameters param = dsa.ExportParameters (true); return ASN1Convert.FromUnsignedBigInteger (param.X).GetBytes (); }
static public byte[] ToCapiPublicKeyBlob (DSA dsa) { DSAParameters p = dsa.ExportParameters (false); int keyLength = p.P.Length; // in bytes // header + P + Q + G + Y + count + seed byte[] blob = new byte [16 + keyLength + 20 + keyLength + keyLength + 4 + 20]; blob [0] = 0x06; // Type - PUBLICKEYBLOB (0x06) blob [1] = 0x02; // Version - Always CUR_BLOB_VERSION (0x02) // [2], [3] // RESERVED - Always 0 blob [5] = 0x22; // ALGID blob [8] = 0x44; // Magic blob [9] = 0x53; blob [10] = 0x53; blob [11] = 0x31; byte[] bitlen = GetBytesLE (keyLength << 3); blob [12] = bitlen [0]; blob [13] = bitlen [1]; blob [14] = bitlen [2]; blob [15] = bitlen [3]; int pos = 16; byte[] part; part = p.P; Array.Reverse (part); Buffer.BlockCopy (part, 0, blob, pos, keyLength); pos += keyLength; part = p.Q; Array.Reverse (part); Buffer.BlockCopy (part, 0, blob, pos, 20); pos += 20; part = p.G; Array.Reverse (part); Buffer.BlockCopy (part, 0, blob, pos, keyLength); pos += keyLength; part = p.Y; Array.Reverse (part); Buffer.BlockCopy (part, 0, blob, pos, keyLength); pos += keyLength; Buffer.BlockCopy (GetBytesLE (p.Counter), 0, blob, pos, 4); pos += 4; part = p.Seed; Array.Reverse (part); Buffer.BlockCopy (part, 0, blob, pos, 20); return blob; }
public override DSAParameters ExportParameters(bool includePrivateParameters) => _impl.ExportParameters(includePrivateParameters);
public static DsaPublicKeyParameters GetDsaPublicKey( DSA dsa) { return GetDsaPublicKey(dsa.ExportParameters(false)); }
public static AsymmetricCipherKeyPair GetDsaKeyPair( DSA dsa) { return GetDsaKeyPair(dsa.ExportParameters(true)); }