Beispiel #1
0
        public void FromCapiKeyBlobDSA()
        {
            DSA dsa = CryptoConvert.FromCapiKeyBlobDSA(dsaPrivBlob);

            Assert.AreEqual(dsaKeyPairString, dsa.ToXmlString(true), "KeyPair");
            Assert.AreEqual(dsaPubKeyString, dsa.ToXmlString(false), "PublicKey");
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
 public void FromCapiKeyBlobDSA_UnknownBlob()
 {
     byte[] blob = new byte [334];
     DSA    dsa  = CryptoConvert.FromCapiKeyBlobDSA(blob, 0);
 }
Beispiel #4
0
 public void FromCapiKeyBlobDSA_InvalidOffset()
 {
     DSA dsa = CryptoConvert.FromCapiKeyBlobDSA(new byte [0], 0);
 }
Beispiel #5
0
 public void FromCapiKeyBlobDSA_Null()
 {
     DSA dsa = CryptoConvert.FromCapiKeyBlobDSA(null);
 }