История изменений
Исправление qnikst, (текущая версия) :
вангую (ночь и мне лень думать), если нужно завтра нормально напишу:
import Data.ByteString (ByteString)
import qualified Data.ByteString as BS
foreign import ccall unsafe "X509_REQ_digest"
_X509_digest :: Ptr X509_REQ -> Ptr EVP_PKEY -> Ptr CLen -> IO (Ptr CChar)
digest :: PublicKey key => X509Req -> key -> IO ByteString
digest =
withX509ReqPtr req $ \ reqPtr ->
withPKeyPtr' pkey $ \ pkeyPtr ->
allocaPtr $ \clen ->
_X509_digest reqPtr pkeyPtr clen >>=
failIf (==nullPtr) >>= \x ->
readPtr clen >>= \c ->
BS.packCStringLen (x,c)
идея: там же написано, что либа не доделана, т.е. нужо добавить функцию
Исправление qnikst, :
вангую (ночь и мне лень думать), если нужно завтра нормально напишу:
import qualified Data.ByteString as BS
foreign import ccall unsafe "X509_REQ_digest"
_X509_digest :: Ptr X509_REQ -> Ptr EVP_PKEY -> Ptr CLen -> IO (Ptr CChar)
x509_digest =
withX509ReqPtr req $ \ reqPtr ->
withPKeyPtr' pkey $ \ pkeyPtr ->
allocaPtr $ \clen ->
_X509_digest reqPtr pkeyPtr clen >>=
failIf (==nullPtr) >>= \x ->
readPtr clen >>= \c ->
BS.packCStringLen (x,c)
идея: там же написано, что либа не доделана, т.е. нужо добавить функцию
Исходная версия qnikst, :
вангую (ночь и мне лень думать), если нужно завтра нормально напишу:
import qualified Data.ByteString as BS
foreign import ccall unsafe "X509_REQ_digest"
_X509_digest :: Ptr X509_REQ -> Ptr EVP_PKEY -> Ptr CLen -> IO (Ptr CChar)
x509_digest =
withX509ReqPtr req $ \ reqPtr ->
withPKeyPtr' pkey $ \ pkeyPtr ->
allocaPtr $ \clen ->
_X509_digest reqPtr pkeyPtr clen >>=
failIf (==nullPtr) >>= \x ->
readPtr clen >>= \c ->
BS.packCStringLen (x,c)