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 void Dispose() { if (this._handle != null) { _MD.EVP_MD_CTX_destroy(this._handle); } this._handle = null; }
public void Dispose() { if (this._handle != null) _MD.EVP_MD_CTX_destroy(this._handle); this._handle = null; }
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 static extern int EVP_DigestFinal_ex(EVP_MD_CTX *handle, byte[] array, IntPtr psize);
public static extern int EVP_DigestUpdate(EVP_MD_CTX *handle, byte[] array, UIntPtr size);
public static extern int EVP_DigestInit_ex(EVP_MD_CTX *handle, EVP_MD *type, IntPtr engine);
public static extern EVP_MD *EVP_MD_CTX_md(EVP_MD_CTX *handle);
public static extern void EVP_MD_CTX_destroy(EVP_MD_CTX *handle);