split off common certificate-adding code
This commit is contained in:
parent
993cd40208
commit
f2621a5ea9
37
collects/openssl/private/add-cert.rkt
Normal file
37
collects/openssl/private/add-cert.rkt
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require ffi/unsafe
|
||||||
|
ffi/unsafe/define
|
||||||
|
ffi/unsafe/alloc
|
||||||
|
"../libssl.rkt"
|
||||||
|
"../libcrypto.rkt")
|
||||||
|
(provide (protect-out
|
||||||
|
(except-out (all-defined-out)
|
||||||
|
define-crypto
|
||||||
|
define-ssl)))
|
||||||
|
|
||||||
|
;; -- libcrypto
|
||||||
|
|
||||||
|
(define-ffi-definer define-crypto libcrypto
|
||||||
|
#:default-make-fail make-not-available)
|
||||||
|
(define-cpointer-type _X509*)
|
||||||
|
(define-cpointer-type _X509_STORE*)
|
||||||
|
|
||||||
|
;; FIXME: refcounting?
|
||||||
|
(define-crypto d2i_X509
|
||||||
|
(_fun (buf) ::
|
||||||
|
(_pointer = #f)
|
||||||
|
((_ptr i _pointer) = buf)
|
||||||
|
(_int32 = (bytes-length buf))
|
||||||
|
-> _X509*))
|
||||||
|
|
||||||
|
(define-crypto X509_STORE_add_cert
|
||||||
|
(_fun _X509_STORE* _X509* -> _int))
|
||||||
|
|
||||||
|
;; -- libssl
|
||||||
|
|
||||||
|
(define-ffi-definer define-ssl libssl
|
||||||
|
#:default-make-fail make-not-available)
|
||||||
|
(define _SSL_CTX* _pointer)
|
||||||
|
|
||||||
|
(define-ssl SSL_CTX_get_cert_store
|
||||||
|
(_fun _SSL_CTX* -> _X509_STORE*))
|
|
@ -5,35 +5,10 @@
|
||||||
ffi/unsafe/define
|
ffi/unsafe/define
|
||||||
ffi/unsafe/alloc
|
ffi/unsafe/alloc
|
||||||
"../libssl.rkt"
|
"../libssl.rkt"
|
||||||
"../libcrypto.rkt")
|
"../libcrypto.rkt"
|
||||||
|
"add-cert.rkt")
|
||||||
(provide load-win32-root-certificates)
|
(provide load-win32-root-certificates)
|
||||||
|
|
||||||
;; -- libcrypto
|
|
||||||
(define-ffi-definer define-crypto libcrypto
|
|
||||||
#:default-make-fail make-not-available)
|
|
||||||
(define-cpointer-type _X509*)
|
|
||||||
(define-cpointer-type _X509_STORE*)
|
|
||||||
|
|
||||||
;; FIXME: refcounting?
|
|
||||||
(define-crypto d2i_X509
|
|
||||||
(_fun (buf) ::
|
|
||||||
(_pointer = #f)
|
|
||||||
((_ptr i _pointer) = buf)
|
|
||||||
(_int32 = (bytes-length buf))
|
|
||||||
-> _X509*))
|
|
||||||
|
|
||||||
(define-crypto X509_STORE_add_cert
|
|
||||||
(_fun _X509_STORE* _X509* -> _int))
|
|
||||||
|
|
||||||
;; -- libssl
|
|
||||||
|
|
||||||
(define-ffi-definer define-ssl libssl
|
|
||||||
#:default-make-fail make-not-available)
|
|
||||||
(define _SSL_CTX* _pointer)
|
|
||||||
|
|
||||||
(define-ssl SSL_CTX_get_cert_store
|
|
||||||
(_fun _SSL_CTX* -> _X509_STORE*))
|
|
||||||
|
|
||||||
;; -- Windows CryptoAPI
|
;; -- Windows CryptoAPI
|
||||||
|
|
||||||
(define crypt-lib
|
(define crypt-lib
|
||||||
|
|
Loading…
Reference in New Issue
Block a user