feat: add decapsulate
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
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) {
|
||||
stack u64 key_id;
|
||||
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);
|
||||
} else {
|
||||
if (id == 2) {
|
||||
decapsulate(shared_mem, sync_mem, private_mem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user