soda-sdk
Version:
This SDK provides functionalities for AES and RSA encryption schemes, ECDSA signature scheme and some functionalities used for working with sodalabs blockchain.
69 lines (59 loc) • 1.88 kB
TypeScript
import { Buffer } from 'buffer';
export const BLOCK_SIZE: number;
export const ADDRESS_SIZE: number;
export const FUNC_SIG_SIZE: number;
export const CT_SIZE: number;
export const KEY_SIZE: number;
export const HEX_BASE: number;
export interface EncryptedData {
ciphertext: Buffer;
r: Buffer;
}
export function encrypt(key: Buffer, plaintext: Buffer): EncryptedData;
export function decrypt(key: Buffer, r: Buffer, ciphertext: Buffer): Uint8Array;
export function generateAesKey(): Buffer;
export function generateECDSAPrivateKey(): Buffer;
export function signIT(
sender: Buffer,
addr: Buffer,
funcSig: Buffer,
ct: Buffer,
key: Buffer,
eip191?: boolean
): Buffer;
export function sign(message: Buffer, key: Buffer): Buffer;
export function signEIP191(message: Buffer, key: Buffer): Buffer;
export interface PreparedMessage {
encryptedInt: bigint;
message: string;
}
export function prepareMessage(
plaintext: bigint,
signerAddress: string,
aesKey: string,
contractAddress: string,
functionSelector: string
): PreparedMessage;
export interface PreparedIT {
ctInt: bigint;
signature: Buffer;
}
export function prepareIT(
plaintext: bigint,
userAesKey: Buffer,
sender: Buffer,
contract: Buffer,
hashFunc: Buffer,
signingKey: Buffer,
eip191?: boolean
): PreparedIT;
export interface RSAKeyPair {
privateKey: Buffer;
publicKey: Buffer;
}
export function generateRSAKeyPair(): RSAKeyPair;
export function encryptRSA(publicKeyUint8Array: Uint8Array, plaintext: string): Uint8Array;
export function decryptRSA(privateKeyUint8Array: Uint8Array, ciphertext: Uint8Array | string): Uint8Array;
export function getFuncSig(functionSig: string): Buffer;
export function encodeString(str: string): Uint8Array;
export function encryptNumber(r: string, key: Buffer): Uint8Array;