The Kyber object is the object that decrypts the message, in machine A.
The following code is used in Machine A to initiate the Kyber object from preset keys.
import nim_kyber
# Create preset kyber object
var k: Kyber;
k.noiseSecret = [[...], [...]]; # Two 256-number lists with range -1 to 1
k.signalSecret = [[...], [...]]; # Two 256-number lists with range -1 to 1
k.publicTable = [[...],[...],[...],[...]; # Four 256-number lists with range -1665 to 1665
k.publicKeys = generatePublicKey(k.publicTable, k.signalSecret, k.noiseSecret); # Generate public keys from noiseSecret, signalSecret and publicTable. Not recommended to predefine
import * as kyb from "@usekyber/ts";
// Init values
let noiseSecret = [[...], [...]]; // Two 256-number lists with range -1 to 1
let signalSecret = [[...], [...]]; // Two 256-number lists with range -1 to 1
let publicTable = [[...],[...],[...],[...]; // Four 256-number lists with range -1665 to 1665
let publicKeys = kyb.generatePublicKey(publicTable, signalSecret, noiseSecret); // Generate public keys from noiseSecret, signalSecret and publicTable. Not recommended to predefine
// Creates a kyber object with random keys and public tables
var k: kyb.Kyber = {
noiseSecret,
signalSecret,
publicTable,
publicKeys
}