I am a new in Nodejs and libsodium.js. I have a task but I don't know how to solve it, and from where to start it. I'll appreciate if someone guides me. I have a class wallet inside it I need to generate public and private key then
class Wallet {
async create(): Promise<void> {
// must generate public / private key pair
// you can store files in the leveldb
}
async sign(content: string): Promise<string> {
// must return signature for the given content using previously generated public / private key pair
}
async verify(signature: string, content: string): Promise<boolean> {
// verifies if given signature was generated by previously generated public / private key pair
}
async encrypt(content: string): Promise<string> {
// must encrypt given string and return encrypted string (based on previously generated public / private key pair)
}
async decrypt(content): Promise<string> {
// must decrypt the given encrypted string and return original string (based on previously generated public / private key pair)
}
}
// usage
const wallet = new Wallet()
await wallet.create()
await wallet.sign("I am president") // must return signature
await wallet.verify(signature, "I am president") // must return true
await wallet.encrypt("I am president") // must return ecnrypted string
await wallet.decrypt(encrypted) // must return decrypted string