示例#1
0
        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();
        }
示例#2
0
        public HMAC(MDType type)
        {
            this._type = type;
            this._md   = MD.GetMD(this._type);

            if (this._md == null)
            {
                throw new EVPException();
            }
        }
示例#3
0
文件: OpenSSL.cs 项目: haf/miTLS
        public HMAC(MDType type)
        {
            this._type = type;
            this._md   = MD.GetMD(this._type);

            if (this._md == null)
                throw new EVPException();
        }
示例#4
0
 public static extern IntPtr HMAC
     (EVP_MD *md, byte[] key, int klen, byte[] data, int len, byte[] aout, ref int olen);
示例#5
0
 public static extern int EVP_MD_size(EVP_MD *handle);
示例#6
0
 public static extern int EVP_DigestInit_ex(EVP_MD_CTX *handle, EVP_MD *type, IntPtr engine);