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); }
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); }