internal extern static int HMAC_Init_ex(ref HMAC_CTX ctx, byte[] key, int key_len, IntPtr md, IntPtr zero);
private extern static void HMAC_Init_exNative(ref HMAC_CTX ctx, byte[] key, int key_len, IntPtr md, IntPtr zero);
internal extern static unsafe int HMAC_Init(out HMAC_CTX ctx, byte *key, int key_len, IntPtr md);
private extern static unsafe int HMAC_InitNative(out HMAC_CTX ctx, byte* key, int key_len, IntPtr md);
private extern static unsafe int HMAC_FinalNative(ref HMAC_CTX ctx, byte* md, ref uint len);
internal extern static unsafe void HMAC_CTX_cleanup(ref HMAC_CTX ctx);
internal static unsafe int HMAC_Update(ref HMAC_CTX ctx, byte* data, int len) { HMAC_UpdateNative(ref ctx, data, len); return Success; }
private extern static unsafe int HMAC_InitNative(out HMAC_CTX ctx, byte *key, int key_len, IntPtr md);
private extern static unsafe int HMAC_UpdateNative(ref HMAC_CTX ctx, byte *data, int len);
internal static unsafe int HMAC_Update(ref HMAC_CTX ctx, byte *data, int len) { HMAC_UpdateNative(ref ctx, data, len); return(Success); }
internal static unsafe int HMAC_Final(ref HMAC_CTX ctx, byte *md, ref uint len) { HMAC_FinalNative(ref ctx, md, ref len); return(Success); }
// On OSX, these functions are void returning (and the man pages give no indication of what would happen if they // fail), but upstack code is written against surface area where they return 1 on success and 0 on error. // These routines call the underlying APIs and then just return success internal static unsafe int HMAC_Init(out HMAC_CTX ctx, byte *key, int key_len, IntPtr md) { HMAC_InitNative(out ctx, key, key_len, md); return(Success); }
internal static int HMAC_Init_ex(ref HMAC_CTX ctx, byte[] key, int key_len, IntPtr md, IntPtr zero) { HMAC_Init_exNative(ref ctx, key, key_len, md, zero); return(Success); }
internal extern static unsafe int HMAC_Update(ref HMAC_CTX ctx, byte *data, int len);
private extern static unsafe int HMAC_FinalNative(ref HMAC_CTX ctx, byte *md, ref uint len);
internal extern static unsafe int HMAC_Final(ref HMAC_CTX ctx, byte *md, ref uint len);
internal extern static unsafe int HMAC_Init(out HMAC_CTX ctx, byte* key, int key_len, IntPtr md);
// On OSX, these functions are void returning (and the man pages give no indication of what would happen if they // fail), but upstack code is written against surface area where they return 1 on success and 0 on error. // These routines call the underlying APIs and then just return success internal static unsafe int HMAC_Init(out HMAC_CTX ctx, byte* key, int key_len, IntPtr md) { HMAC_InitNative(out ctx, key, key_len, md); return Success; }
internal static unsafe int HMAC_Final(ref HMAC_CTX ctx, byte* md, ref uint len) { HMAC_FinalNative(ref ctx, md, ref len); return Success; }
internal extern static unsafe int HMAC_Update(ref HMAC_CTX ctx, byte* data, int len);
private extern static unsafe int HMAC_UpdateNative(ref HMAC_CTX ctx, byte* data, int len);
internal extern static unsafe int HMAC_Final(ref HMAC_CTX ctx, byte* md, ref uint len);
internal static int HMAC_Init_ex(ref HMAC_CTX ctx, byte[] key, int key_len, IntPtr md, IntPtr zero) { HMAC_Init_exNative(ref ctx, key, key_len, md, zero); return Success; }