public MD(MDType type) { EVP_MD * md = null; // Statically allocated (MT), don't free EVP_MD_CTX *handle = null; if ((md = MD.GetMD(type)) == null) { throw new EVPException(); } if ((handle = _MD.EVP_MD_CTX_create()) == null) { goto Bailout; } if (_MD.EVP_DigestInit_ex(handle, md, IntPtr.Zero) == 0) { goto Bailout; } this._handle = handle; this._type = type; return; Bailout: if (handle != null) { _MD.EVP_MD_CTX_destroy(handle); } throw new EVPException(); }
public HMAC(MDType type) { this._type = type; this._md = MD.GetMD(this._type); if (this._md == null) { throw new EVPException(); } }
public HMAC(MDType type) { this._type = type; this._md = MD.GetMD(this._type); if (this._md == null) throw new EVPException(); }
public static extern IntPtr HMAC (EVP_MD *md, byte[] key, int klen, byte[] data, int len, byte[] aout, ref int olen);
public static extern int EVP_MD_size(EVP_MD *handle);
public static extern int EVP_DigestInit_ex(EVP_MD_CTX *handle, EVP_MD *type, IntPtr engine);