feat: add decapsulate

This commit is contained in:
2024-08-27 17:33:51 +02:00
parent 50d839e23e
commit 6bd0a265f8

View File

@@ -69,6 +69,20 @@ inline fn encapsulate(reg u64 shared_mem sync_mem) {
jade_kem_kyber_kyber768_amd64_avx2_enc_derand(ctptr, ssptr, pkptr, ssptr); jade_kem_kyber_kyber768_amd64_avx2_enc_derand(ctptr, ssptr, pkptr, ssptr);
} }
inline fn decapsulate(reg u64 shared_mem sync_mem private_mem) {
reg u64 ssptr ctptr idptr keyid keyptr;
ssptr = extract_nth_ptr(sync_mem, shared_mem, 0);
ctptr = extract_nth_ptr(sync_mem, shared_mem, 1);
idptr = extract_nth_ptr(sync_mem, shared_mem, 2);
keyid = (u64)[idptr];
keyid *= MLKEM_SK_SIZE;
keyptr = private_mem + keyid;
jade_kem_kyber_kyber768_amd64_avx2_dec(ssptr, ctptr, keyptr);
}
export fn agent_start(reg u64 shared_mem sync_mem private_mem_fd) { export fn agent_start(reg u64 shared_mem sync_mem private_mem_fd) {
stack u64 key_id; stack u64 key_id;
reg u64 private_mem; reg u64 private_mem;
@@ -116,6 +130,7 @@ export fn agent_start(reg u64 shared_mem sync_mem private_mem_fd) {
encapsulate(shared_mem, sync_mem); encapsulate(shared_mem, sync_mem);
} else { } else {
if (id == 2) { if (id == 2) {
decapsulate(shared_mem, sync_mem, private_mem);
} }
} }
} }