Example #1
0
 public static PKCS8.KeyInfo GetType(byte[] data)
 {
     if (data == null)
     {
         throw new ArgumentNullException("data");
     }
     PKCS8.KeyInfo result = PKCS8.KeyInfo.Unknown;
     try
     {
         ASN1 asn = new ASN1(data);
         if (asn.Tag == 48 && asn.Count > 0)
         {
             ASN1 asn2 = asn[0];
             byte tag  = asn2.Tag;
             if (tag != 2)
             {
                 if (tag == 48)
                 {
                     result = PKCS8.KeyInfo.EncryptedPrivateKey;
                 }
             }
             else
             {
                 result = PKCS8.KeyInfo.PrivateKey;
             }
         }
     }
     catch
     {
         throw new CryptographicException("invalid ASN.1 data");
     }
     return(result);
 }
Example #2
0
        public static PKCS8.KeyInfo GetType(byte[] data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }
            PKCS8.KeyInfo keyInfo = PKCS8.KeyInfo.Unknown;
            try
            {
                ASN1 asN1 = new ASN1(data);
                if (asN1.Tag == (byte)48)
                {
                    if (asN1.Count > 0)
                    {
                        switch (asN1[0].Tag)
                        {
                        case 2:
                            keyInfo = PKCS8.KeyInfo.PrivateKey;
                            break;

                        case 48:
                            keyInfo = PKCS8.KeyInfo.EncryptedPrivateKey;
                            break;
                        }
                    }
                }
            }
            catch
            {
                throw new CryptographicException("invalid ASN.1 data");
            }
            return(keyInfo);
        }