/// <summary> /// Get the HashAlgorithmName from the given ALG_ID /// </summary> private static HashAlgorithmName?GetHashAlgorithmName(Interop.BCrypt.ECC_CURVE_ALG_ID_ENUM hashId) { Interop.Crypt32.CRYPT_OID_INFO oid = Interop.Crypt32.FindAlgIdOidInfo((int)hashId); if (oid.AlgId == -1) { // The original hash algorithm may not be found and is optional return(null); } return(new HashAlgorithmName(oid.Name)); }
public static unsafe CRYPT_OID_INFO FindAlgIdOidInfo(Interop.BCrypt.ECC_CURVE_ALG_ID_ENUM algId) { CRYPT_OID_INFO *fullOidInfo = CryptFindOIDInfo( CryptOidInfoKeyType.CRYPT_OID_INFO_ALGID_KEY, &algId, OidGroup.HashAlgorithm); if (fullOidInfo != null) { return(*fullOidInfo); } // Otherwise the lookup failed. return(new CRYPT_OID_INFO() { AlgId = -1 }); }
public static CRYPT_OID_INFO FindAlgIdOidInfo(Interop.BCrypt.ECC_CURVE_ALG_ID_ENUM algId) { int intAlgId = (int)algId; IntPtr fullOidInfo = CryptFindOIDInfo( CryptOidInfoKeyType.CRYPT_OID_INFO_ALGID_KEY, ref intAlgId, OidGroup.HashAlgorithm); if (fullOidInfo != IntPtr.Zero) { return(Marshal.PtrToStructure <CRYPT_OID_INFO>(fullOidInfo)); } // Otherwise the lookup failed. return(new CRYPT_OID_INFO() { AlgId = -1 }); }