From 42666b1d30804d96dab6a2b1edd4f0eaef736f28 Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Thu, 15 Jan 2026 19:06:55 +0300 Subject: [PATCH] add bindings needed for X25519 `deriveBits` implementation --- src/crypto.zig | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/crypto.zig b/src/crypto.zig index 4de8d69a..012ca96e 100644 --- a/src/crypto.zig +++ b/src/crypto.zig @@ -193,6 +193,8 @@ pub const struct_evp_pkey_st = extern struct { ameth: ?*const EVP_PKEY_ASN1_METHOD, }; pub const EVP_PKEY = struct_evp_pkey_st; +pub const struct_evp_pkey_ctx_st = opaque {}; +pub const EVP_PKEY_CTX = struct_evp_pkey_ctx_st; pub extern fn RAND_bytes(buf: [*]u8, len: usize) c_int; @@ -229,3 +231,8 @@ pub const EVP_PKEY_X25519 = NID_X25519; pub extern fn EVP_PKEY_new_raw_private_key(@"type": c_int, unused: ?*ENGINE, in: [*c]const u8, len: usize) [*c]EVP_PKEY; pub extern fn EVP_PKEY_new_raw_public_key(@"type": c_int, unused: ?*ENGINE, in: [*c]const u8, len: usize) [*c]EVP_PKEY; +pub extern fn EVP_PKEY_CTX_new(pkey: [*c]EVP_PKEY, e: ?*ENGINE) ?*EVP_PKEY_CTX; +pub extern fn EVP_PKEY_CTX_free(ctx: ?*EVP_PKEY_CTX) void; +pub extern fn EVP_PKEY_derive_init(ctx: ?*EVP_PKEY_CTX) c_int; +pub extern fn EVP_PKEY_derive(ctx: ?*EVP_PKEY_CTX, key: [*c]u8, out_key_len: [*c]usize) c_int; +pub extern fn EVP_PKEY_derive_set_peer(ctx: ?*EVP_PKEY_CTX, peer: [*c]EVP_PKEY) c_int;