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);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user