-! Copyright (C) 2008 Slava Pestov
+! Copyright (C) 2008, 2010 Slava Pestov
! See http://factorcode.org/license.txt for BSD license.
USING: accessors byte-arrays alien.c-types alien.data kernel
continuations destructors sequences io openssl openssl.libcrypto
: <evp-md-context> ( -- ctx )
evp-md-context new-disposable
- EVP_MD_CTX <struct> dup EVP_MD_CTX_init >>handle ;
+ EVP_MD_CTX_create >>handle ;
M: evp-md-context dispose*
- handle>> EVP_MD_CTX_cleanup drop ;
+ handle>> EVP_MD_CTX_destroy ;
: with-evp-md-context ( quot -- )
maybe-init-ssl [ <evp-md-context> ] dip with-disposal ; inline
: digest-value ( ctx -- value )
handle>>
- EVP_MAX_MD_SIZE <byte-array> 0 <int>
- [ EVP_DigestFinal_ex ssl-error ] 2keep
- *int memory>byte-array ;
+ { { int EVP_MAX_MD_SIZE } int }
+ [ EVP_DigestFinal_ex ssl-error ]
+ [ memory>byte-array ]
+ with-out-parameters ;
PRIVATE>