|
93 | 93 |
|
94 | 94 | import dynlib |
95 | 95 |
|
| 96 | +{.pragma: lcrypto, cdecl, dynlib: DLLUtilName, importc.} |
| 97 | +{.pragma: lssl, cdecl, dynlib: DLLSSLName, importc.} |
| 98 | + |
96 | 99 | type |
97 | 100 | SslStruct {.final, pure.} = object |
98 | 101 | SslPtr* = ptr SslStruct |
|
102 | 105 | PSTACK* = SslPtr |
103 | 106 | PX509* = SslPtr |
104 | 107 | PX509_NAME* = SslPtr |
105 | | - PEVP_MD* = SslPtr |
106 | 108 | PBIO_METHOD* = SslPtr |
107 | 109 | BIO* = SslPtr |
108 | 110 | EVP_PKEY* = SslPtr |
@@ -684,48 +686,48 @@ proc RSA_free*(rsa: PRSA) {.cdecl, dynlib: DLLUtilName, importc.} |
684 | 686 | proc RSA_size*(rsa: PRSA): cint {.cdecl, dynlib: DLLUtilName, importc.} |
685 | 687 |
|
686 | 688 | # sha types |
687 | | -proc EVP_md_null*(): EVP_MD {.cdecl, importc.} |
688 | | -proc EVP_md2*(): EVP_MD {.cdecl, importc.} |
689 | | -proc EVP_md4*(): EVP_MD {.cdecl, importc.} |
690 | | -proc EVP_md5*(): EVP_MD {.cdecl, importc.} |
691 | | -proc EVP_sha*(): EVP_MD {.cdecl, importc.} |
692 | | -proc EVP_sha1*(): EVP_MD {.cdecl, importc.} |
693 | | -proc EVP_dss*(): EVP_MD {.cdecl, importc.} |
694 | | -proc EVP_dss1*(): EVP_MD {.cdecl, importc.} |
695 | | -proc EVP_ecdsa*(): EVP_MD {.cdecl, importc.} |
696 | | -proc EVP_sha224*(): EVP_MD {.cdecl, importc.} |
697 | | -proc EVP_sha256*(): EVP_MD {.cdecl, importc.} |
698 | | -proc EVP_sha384*(): EVP_MD {.cdecl, importc.} |
699 | | -proc EVP_sha512*(): EVP_MD {.cdecl, importc.} |
700 | | -proc EVP_mdc2*(): EVP_MD {.cdecl, importc.} |
701 | | -proc EVP_ripemd160*(): EVP_MD {.cdecl, importc.} |
702 | | -proc EVP_whirlpool*(): EVP_MD {.cdecl, importc.} |
703 | | -proc EVP_MD_size*(md: EVP_MD): cint {.cdecl, importc.} |
| 689 | +proc EVP_md_null*(): EVP_MD {.lcrypto.} |
| 690 | +proc EVP_md2*(): EVP_MD {.lcrypto.} |
| 691 | +proc EVP_md4*(): EVP_MD {.lcrypto.} |
| 692 | +proc EVP_md5*(): EVP_MD {.lcrypto.} |
| 693 | +proc EVP_sha*(): EVP_MD {.lcrypto.} |
| 694 | +proc EVP_sha1*(): EVP_MD {.lcrypto.} |
| 695 | +proc EVP_dss*(): EVP_MD {.lcrypto.} |
| 696 | +proc EVP_dss1*(): EVP_MD {.lcrypto.} |
| 697 | +proc EVP_ecdsa*(): EVP_MD {.lcrypto.} |
| 698 | +proc EVP_sha224*(): EVP_MD {.lcrypto.} |
| 699 | +proc EVP_sha256*(): EVP_MD {.lcrypto.} |
| 700 | +proc EVP_sha384*(): EVP_MD {.lcrypto.} |
| 701 | +proc EVP_sha512*(): EVP_MD {.lcrypto.} |
| 702 | +proc EVP_mdc2*(): EVP_MD {.lcrypto.} |
| 703 | +proc EVP_ripemd160*(): EVP_MD {.lcrypto.} |
| 704 | +proc EVP_whirlpool*(): EVP_MD {.lcrypto.} |
| 705 | +proc EVP_MD_size*(md: EVP_MD): cint {.lcrypto.} |
704 | 706 |
|
705 | 707 | # hmac functions |
706 | | -proc HMAC*(evp_md: EVP_MD; key: pointer; key_len: cint; d: cstring; n: csize_t; md: cstring; md_len: ptr cuint): cstring {.cdecl, importc.} |
| 708 | +proc HMAC*(evp_md: EVP_MD; key: pointer; key_len: cint; d: cstring; n: csize_t; md: cstring; md_len: ptr cuint): cstring {.lcrypto.} |
707 | 709 |
|
708 | 710 | # RSA key functions |
709 | | -proc PEM_read_bio_PrivateKey*(bp: BIO, x: ptr EVP_PKEY, cb: pointer, u: pointer): EVP_PKEY {.cdecl, importc.} |
710 | | -proc EVP_PKEY_free*(p: EVP_PKEY) {.cdecl, importc.} |
711 | | -proc EVP_DigestSignInit*(ctx: EVP_MD_CTX, pctx: ptr EVP_PKEY_CTX, typ: EVP_MD, e: ENGINE, pkey: EVP_PKEY): cint {.cdecl, importc.} |
712 | | -proc EVP_DigestInit_ex*(ctx: EVP_MD_CTX, typ: PEVP_MD, engine: SslPtr = nil): cint {.cdecl, importc.} |
713 | | -proc EVP_DigestUpdate*(ctx: EVP_MD_CTX, data: pointer, len: cuint): cint {.cdecl, importc.} |
714 | | -proc EVP_DigestFinal_ex*(ctx: EVP_MD_CTX, buffer: pointer, size: ptr cuint): cint {.cdecl, importc.} |
715 | | -proc EVP_DigestSignFinal*(ctx: EVP_MD_CTX, data: pointer, len: ptr csize_t): cint {.cdecl, importc.} |
716 | | -proc EVP_PKEY_CTX_new*(pkey: EVP_PKEY, e: ENGINE): EVP_PKEY_CTX {.cdecl, importc.} |
717 | | -proc EVP_PKEY_CTX_free*(pkeyCtx: EVP_PKEY_CTX) {.cdecl, importc.} |
718 | | -proc EVP_PKEY_sign_init*(c: EVP_PKEY_CTX): cint {.cdecl, importc.} |
| 711 | +proc PEM_read_bio_PrivateKey*(bp: BIO, x: ptr EVP_PKEY, cb: pointer, u: pointer): EVP_PKEY {.lcrypto.} |
| 712 | +proc EVP_PKEY_free*(p: EVP_PKEY) {.lcrypto.} |
| 713 | +proc EVP_DigestSignInit*(ctx: EVP_MD_CTX, pctx: ptr EVP_PKEY_CTX, typ: EVP_MD, e: ENGINE, pkey: EVP_PKEY): cint {.lcrypto.} |
| 714 | +proc EVP_DigestInit_ex*(ctx: EVP_MD_CTX, typ: EVP_MD, engine: SslPtr = nil): cint {.lcrypto.} |
| 715 | +proc EVP_DigestUpdate*(ctx: EVP_MD_CTX, data: pointer, len: cuint): cint {.lcrypto.} |
| 716 | +proc EVP_DigestFinal_ex*(ctx: EVP_MD_CTX, buffer: pointer, size: ptr cuint): cint {.lcrypto.} |
| 717 | +proc EVP_DigestSignFinal*(ctx: EVP_MD_CTX, data: pointer, len: ptr csize_t): cint {.lcrypto.} |
| 718 | +proc EVP_PKEY_CTX_new*(pkey: EVP_PKEY, e: ENGINE): EVP_PKEY_CTX {.lcrypto.} |
| 719 | +proc EVP_PKEY_CTX_free*(pkeyCtx: EVP_PKEY_CTX) {.lcrypto.} |
| 720 | +proc EVP_PKEY_sign_init*(c: EVP_PKEY_CTX): cint {.lcrypto.} |
719 | 721 |
|
720 | 722 | when defined(macosx) or defined(windows): |
721 | | - proc EVP_MD_CTX_create*(): EVP_MD_CTX {.cdecl, importc.} |
722 | | - proc EVP_MD_CTX_destroy*(ctx: EVP_MD_CTX) {.cdecl, importc.} |
723 | | - proc EVP_MD_CTX_cleanup*(ctx: EVP_MD_CTX): cint {.cdecl, importc.} |
| 723 | + proc EVP_MD_CTX_create*(): EVP_MD_CTX {.lcrypto.} |
| 724 | + proc EVP_MD_CTX_destroy*(ctx: EVP_MD_CTX) {.lcrypto.} |
| 725 | + proc EVP_MD_CTX_cleanup*(ctx: EVP_MD_CTX): cint {.lcrypto.} |
724 | 726 | else: |
725 | 727 | # some times you will need this instead: |
726 | | - proc EVP_MD_CTX_create*(): EVP_MD_CTX {.cdecl, importc: "EVP_MD_CTX_new".} |
727 | | - proc EVP_MD_CTX_destroy*(ctx: EVP_MD_CTX) {.cdecl, importc: "EVP_MD_CTX_free".} |
728 | | - proc EVP_MD_CTX_cleanup*(ctx: EVP_MD_CTX): cint {.cdecl, importc: "EVP_MD_CTX_cleanup".} |
| 728 | + proc EVP_MD_CTX_create*(): EVP_MD_CTX {.cdecl, importc: "EVP_MD_CTX_new", dynlib: DLLUtilName.} |
| 729 | + proc EVP_MD_CTX_destroy*(ctx: EVP_MD_CTX) {.cdecl, importc: "EVP_MD_CTX_free", dynlib: DLLUtilName.} |
| 730 | + proc EVP_MD_CTX_cleanup*(ctx: EVP_MD_CTX): cint {.cdecl, importc: "EVP_MD_CTX_cleanup", dynlib: DLLUtilName.} |
729 | 731 |
|
730 | 732 | # <openssl/md5.h> |
731 | 733 | type |
|
0 commit comments