add calculate pk call
This commit is contained in:
@@ -17,7 +17,7 @@ inline fn extract_ipc_id(reg u64 sync_mem) -> reg u64 {
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fn generate_key(reg u64 shared_mem sync_mem private_mem, stack u64 key_id) -> stack u64 {
|
inline fn generate_keypair(reg u64 shared_mem sync_mem private_mem, stack u64 key_id) -> stack u64 {
|
||||||
inline int i;
|
inline int i;
|
||||||
stack u8[32] key;
|
stack u8[32] key;
|
||||||
reg u64 addr idptr pkptr;
|
reg u64 addr idptr pkptr;
|
||||||
@@ -49,6 +49,19 @@ inline fn generate_key(reg u64 shared_mem sync_mem private_mem, stack u64 key_id
|
|||||||
return key_id;
|
return key_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fn calculate_pubkey(reg u64 shared_mem sync_mem private_mem) {
|
||||||
|
reg u64 skptr outptr;
|
||||||
|
|
||||||
|
skptr = extract_nth_ptr(sync_mem, shared_mem, 0);
|
||||||
|
outptr = extract_nth_ptr(sync_mem, shared_mem, 1);
|
||||||
|
|
||||||
|
skptr = (u64)[skptr];
|
||||||
|
skptr *= 32;
|
||||||
|
skptr += private_mem;
|
||||||
|
|
||||||
|
jade_scalarmult_curve25519_amd64_mulx_base(outptr, skptr);
|
||||||
|
}
|
||||||
|
|
||||||
inline fn x25519(reg u64 shared_mem sync_mem private_mem) {
|
inline fn x25519(reg u64 shared_mem sync_mem private_mem) {
|
||||||
reg u64 outptr idptr pkptr keyptr;
|
reg u64 outptr idptr pkptr keyptr;
|
||||||
reg u64 keyid;
|
reg u64 keyid;
|
||||||
@@ -83,10 +96,14 @@ export fn agent_start(reg u64 shared_mem sync_mem private_mem) {
|
|||||||
id = extract_ipc_id(sync_mem);
|
id = extract_ipc_id(sync_mem);
|
||||||
|
|
||||||
if (id == 0) {
|
if (id == 0) {
|
||||||
key_id = generate_key(shared_mem, sync_mem, private_mem, key_id);
|
key_id = generate_keypair(shared_mem, sync_mem, private_mem, key_id);
|
||||||
} else {
|
} else {
|
||||||
if (id == 1) {
|
if (id == 1) {
|
||||||
x25519(shared_mem, sync_mem, private_mem);
|
calculate_pubkey(shared_mem, sync_mem, private_mem);
|
||||||
|
} else {
|
||||||
|
if (id == 2) {
|
||||||
|
x25519(shared_mem, sync_mem, private_mem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user