LINUX.ORG.RU

История изменений

Исправление 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)