public static extern unsafe SECURITY_STATUS NCryptDeriveKey( SafeSecretHandle hSharedSecret, string pwszKDF, NCryptBufferDesc *pParameterList, byte *pbDerivedKey, int cbDerivedKey, out int pcbResult, NCryptDeriveKeyFlags dwFlags = NCryptDeriveKeyFlags.None);
public static extern NTStatus BCryptDeriveKey( SafeSecretHandle sharedSecret, string keyDerivationFunction, [In] ref BCryptBufferDesc kdfParameters, [Out, MarshalAs(UnmanagedType.LPArray)] byte[] derivedKey, int derivedKeySize, [Out] out int resultSize, BCryptDeriveKeyFlags flags);
public static extern unsafe SECURITY_STATUS NCryptDeriveKey( SafeSecretHandle hSharedSecret, string pwszKDF, NCryptBufferDesc *pParameterList, [Friendly(FriendlyFlags.Array | FriendlyFlags.Out | FriendlyFlags.Optional, ArrayLengthParameter = 4)] byte *pbDerivedKey, int cbDerivedKey, out int pcbResult, NCryptDeriveKeyFlags dwFlags = NCryptDeriveKeyFlags.None);
public static extern NTStatus BCryptSecretAgreement( SafeKeyHandle privateKey, SafeKeyHandle publicKey, out SafeSecretHandle secret, BCryptSecretAgreementFlags flags = BCryptSecretAgreementFlags.None);
public static extern NTSTATUS BCryptDeriveKey( SafeSecretHandle sharedSecret, string keyDerivationFunction, [In] ref BCryptBufferDesc kdfParameters, [Out, MarshalAs(UnmanagedType.LPArray)] byte[] derivedKey, int derivedKeySize, [Out] out int resultSize, BCryptDeriveKeyFlags flags);
public static extern NTSTATUS BCryptSecretAgreement( SafeKeyHandle privateKey, SafeKeyHandle publicKey, out SafeSecretHandle secret, BCryptSecretAgreementFlags flags = BCryptSecretAgreementFlags.None);
public static extern SECURITY_STATUS NCryptSecretAgreement( SafeKeyHandle hPrivKey, SafeKeyHandle hPubKey, out SafeSecretHandle phSecret, NCryptSecretAgreementFlags dwFlags = NCryptSecretAgreementFlags.None);
public static extern unsafe SECURITY_STATUS NCryptDeriveKey( SafeSecretHandle hSharedSecret, string pwszKDF, NCryptBufferDesc* pParameterList, byte* pbDerivedKey, int cbDerivedKey, out int pcbResult, NCryptDeriveKeyFlags dwFlags = NCryptDeriveKeyFlags.None);
public static extern SECURITY_STATUS NCryptSecretAgreement( SafeKeyHandle hPrivKey, SafeKeyHandle hPubKey, out SafeSecretHandle phSecret, NCryptSecretAgreementFlags dwFlags = NCryptSecretAgreementFlags.None);