Esempio n. 1
0
        public static EVP_MD_CTX EVP_MD_CTX_new(EVP_HashType hashType)
        {
            var ctx    = EVP_MD_CTX_new();
            var result = EVP_DigestInit_ex(ctx, hashType, IntPtr.Zero);

            ThrowOnErrorReturnCode(result);
            return(ctx);
        }
Esempio n. 2
0
        public unsafe static int HMAC(EVP_HashType evp, ReadOnlySpan <byte> key, ReadOnlySpan <byte> data, Span <byte> output)
        {
            fixed(void *keyPtr = &key.DangerousGetPinnableReference())
            fixed(void *dataPtr   = &data.DangerousGetPinnableReference())
            fixed(void *outputPtr = &output.DangerousGetPinnableReference())
            {
                var outputLength = output.Length;
                var result       = HMAC(evp, keyPtr, key.Length, dataPtr, data.Length, outputPtr, ref outputLength);

                ThrowOnNullPointer(result);
                return(outputLength);
            }
        }
Esempio n. 3
0
 internal OpenSslHash(EVP_HashType hashTypePointer, int size, HashType hashType)
 {
     _hashType = hashType;
     _ctx      = EVP_MD_CTX_new(hashTypePointer);
     _size     = size;
 }
Esempio n. 4
0
 private static extern int EVP_DigestInit_ex(EVP_MD_CTX ctx, EVP_HashType type, IntPtr impl);
Esempio n. 5
0
 private static extern unsafe void *HMAC(EVP_HashType evp_md, void *key, int key_len, void *d, int n, void *md, ref int md_len);