Home Reference Source
import RSA from 'wasm-rsa/src/Rsa.ts'
private class | source

RSA

facade on wasm code.

Example:

import RSASetup from 'wasm-rsa'
const rsaInstance = await RSASetup()

Method Summary

Public Methods
public

Generate private key from pem key format

public

Generate public keys from n, e

public

Create public key from pem key format

public

Generate private key pair

public

Generate private key pair from n, d, e, primes

public

Get private primes

public

Get private key pair

public

Get public keys

public

privateDecrypt(encryptedMessage: string): string

decrypt message with private keys

public

generate private key in PEM format

public

encryption message with public keys

public

generate public key in PEM format

public

sign message with private keys

public

verify(message: string, signature: string): boolean

verify signature with public keys

Public Methods

public createRSAPrivateFromPEM(key: string): RSAPublic source

Generate private key from pem key format

Params:

NameTypeAttributeDescription
key string

private key in PEM format

Return:

RSAPublic

generated keys

Example:

const publicKey = rsaInstance.createRSAPrivateFromPEM(`-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDD/UjzFPIp85KE
Ga4rhPYY0/8MszqrNHcyoogVXyg5MTXCee6nQPOk88HLsDM2KW7JBtvc2LDbzPVm
P6ZxqRsj03T3VrC4YOari460Jn9J6L4ueKvUagkxxF2XyaB7yuoblFmuTsZA98Zj
wAgfPA4G2PaeaxtdzWWXV4ehmGoXslKFzNnMSBLu/a+GROrWTT/5vg1jybXrppeD
cTeBBE+vbcv9k/Al7j6eIwCi0ObZYoEEET+3Et5hGv6w7qrH+Ds0MBhesSMmVLSm
vkEMaJxUcWGnIQazgghFjnFvnQkF57zJsMl/sTjm7QkA9IIxejPGvfgARbP1aAAv
UMtjpoULAgMBAAECggEABYwix3adUCCr0f9kFalCyfseKf7ct0HZ6d392hUCb3P8
IJAQ+Dz3aIDZyGkpWewcTaZbDMo5X09S1t0QWgE+Wmo+0k1q3R0pCkv98w1v5uim
kWwq+O0za2wydfxoBXj93V/6ldt28xnQTLx/vlqVzw3PFTbU5HfO21TH6wQEZL1D
rhEshddoU9a9qrqzsVFNLUiGHAvMR7YijagLl0t2LMSfeIt5qS4Rj7fCyXGzNNSx
01h31IfVSUT1FdWTf+fRAYF20nupqejzLjRc5srNoTrQnK7otDFYFxiwb/E2/Dte
I6kIr5SgscOBoQizBPL/yINgWjWHYUrMRyX+EN2sqQKBgQDOtX4Zs4QDNFT7otjL
D1JNIY6bcic0P86XMq6LNSV5o6JmxNDMlPD/EjVAicjOxn1LYbnzIQyuzOVrNXm0
+QA8dsJMyQzzNO7o6t9lLtrG+CXBKP7wmVBb8mMWve0VKNeLZyOpbOamGC1P7mPp
JVoRh+8DAVzKPXlEaKXXLasZHwKBgQDyuWs8b/6wv1d8WGZoXYuCkL1l/ywNidZP
AeBys4FXdqN6luOuCIoMpu7sOzCT7exu5pz3toB74bwVGRsSlcp3LJirb8LN4U3o
jkD3Tp8Gn7f7pUE43ZphU8B25ebAMBgCC5V+77HVIlo8GmLFz0M5XAslWtZ6GMmr
XF3HhERalQKBgEejfN15aqIVq/I94PaXC8XxgFP9PvsLthSOmxFhzOgYPvtw8JBG
ejNcYxpH5lFLVzcd2m0ZoiSenFAIi3Kd7WgHHJWyBAvx527Pn7aYg3f7nlIQXDKU
X9ZN7et+zUDNE86bYy+fr1wW+vU9wGCX8lwrCTm4aikpHvMHdZpamHavAoGADYSq
JkmOg8WEV9aMjY94L6NkCQQ3LeHZX7kZCQpaT8a5wCAbOhwbpCy/7cQ2Jmb/3gVW
BK3TZhLiaMJnMZfKGO0Q66tjzBeaQTN7BssILFRE6O0BPuuIp5cEhxqyyU1kaOjA
QLuUyewJ3oMRsTaj5dPsgv4WJ+KtiK+yQWRqcikCgYAwRzXzsrGK2HpkER3sEXok
hydDHbuqKLuT2Cqe6wyBpJPq5MyMu/T7ANmAPtJK4nvQF5RQoGdTne6/lvvwNMf2
ullviEZz1ehunkmoU25CgAKLXXCMmw/T8GyX6UUIqofyFGHasj/vjA8ZIpdLyKVP
khSri8NDQTao0i43teKIMA==
-----END PRIVATE KEY-----`)

public createRSAPublic(n: string, e: string): RSAPublic source

Generate public keys from n, e

Params:

NameTypeAttributeDescription
n string

public piece rsa key

e string

public piece rsa key

Return:

RSAPublic

generated keys

Example:

const publicKeys = rsaInstance.createRSAPublic(n, e)

public createRSAPublicFromPEM(key: string): RSAPublic source

Create public key from pem key format

Params:

NameTypeAttributeDescription
key string

public key in PEM format

Return:

RSAPublic

generated keys

Example:

const publicKey = rsaInstance.createRSAPublicFromPEM(`-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw/1I8xTyKfOShBmuK4T2
GNP/DLM6qzR3MqKIFV8oOTE1wnnup0DzpPPBy7AzNiluyQbb3Niw28z1Zj+mcakb
I9N091awuGDmq4uOtCZ/Sei+Lnir1GoJMcRdl8mge8rqG5RZrk7GQPfGY8AIHzwO
Btj2nmsbXc1ll1eHoZhqF7JShczZzEgS7v2vhkTq1k0/+b4NY8m166aXg3E3gQRP
r23L/ZPwJe4+niMAotDm2WKBBBE/txLeYRr+sO6qx/g7NDAYXrEjJlS0pr5BDGic
VHFhpyEGs4IIRY5xb50JBee8ybDJf7E45u0JAPSCMXozxr34AEWz9WgAL1DLY6aF
CwIDAQAB
-----END PUBLIC KEY-----`)

public generateRSAPrivate(bits: number): RSAPrivate source

Generate private key pair

Params:

NameTypeAttributeDescription
bits number

count bits for create rsa keys.

Return:

RSAPrivate

generated keys

Example:

const { n, e, d, primes } = rsaInstance.generateRSAPrivate(2048)

public generateRSAPrivateFrom(n: string, d: string, e: string, primes: Array): RSAPrivate source

Generate private key pair from n, d, e, primes

Params:

NameTypeAttributeDescription
n string

public piece rsa key

d string

private piece rsa key

e string

public piece rsa key

primes Array

array of big numbers which create key pair

Return:

RSAPrivate

generated keys

Example:

const privateKeys = rsaInstance.generateRSAPrivateFrom(n, d, e, primes)

public getPrivatePrimes(): Array source

Get private primes

Return:

Array

private primes

Example:

const primes = rsaInstance.getPrivatePrimes()

public getRSAPrivate(): RSAPrivate source

Get private key pair

Return:

RSAPrivate

private keys

Example:

const { n, d, e, primes } = rsaInstance.getRSAPrivate()

public getRSAPublic(): RSAPublic source

Get public keys

Return:

RSAPublic

private keys

Example:

const { n, e } = rsaInstance.getRSAPublic()

public privateDecrypt(encryptedMessage: string): string source

decrypt message with private keys

Params:

NameTypeAttributeDescription
encryptedMessage string

data for dencrypt

Return:

string

message

Example:

const decryptMessage = rsaInstance.privateDecrypt(
 `ca6e7d0571563b46b82a873c196e53d7322f2d5f510a5185d4a94b0ecbfea966160
  d4b0be160684a5b9b0c2b6d429d331a950210e5545ee133793f604f417f93c63af4509db79f90a89d0c87c7c
  87dc6873a89575b0c985f8cc159bae781f88607c4ed8d2a6df4aac33c0ca91581debe50b7fef2fc76e71ad7c
  e3c0191d7c1497199c2a317bd475a27988d71bfa5a33d23d1be19791a9bded0292836b0d10e5e4d7fa1bd092
  9f5cabdb6082f2882c12dadebe23b3682e625618cd5a57d9727eb06192ab4703277128771d193aa69ea30123
  409c7205827375c34d4c22544d09c1c128d8edd9124d62aa062f6642bd7e3e468888e1a78c7e80206361ef131ecee`
)

decryptMessage -> 'hello'

public privateKeyToPEM(): string source

generate private key in PEM format

Return:

string

key

Example:

const privatePEM = rsaInstance.privateKeyToPEM()
console.log(privatePEM)
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCtelj+ptZ69rtp4unsbbRFygYpaZc0/GgRkJSwav891WjZk/dp
/J71s4cjJuKgbnN7wKt2ECoeBEzr/BAWc/y9dh1dLdSoHnl2LPVLindFRC3o7UZu
mogz4X1bxlb6lEh2TV04nrt9615e1+RS9zIBP0HGr2ZG4qhd58SH1NGSZQIDAQAB
AoGAAR1JFxGxTQbqu0pm4ErwHoamtXtlKkT40iwQmHWHgDkvvD4UF800pDVsB9DH
IeqzuTbKoy6FZr32VInA/LPwCrDSmeD2HNuGiwIjTvBl1QOnwG8KzfFSXHV3ZVn7
4Gb4QEOdB8osPhi7uU+a6lksSudNLKoLUIX0YqD1aWQtMAECQQDdQXmfeJyeHRdI
nOAyseTLCzBoHJONoAVtbeyLt2colG7BzyDDxKanj9LsMtkdtLOVymHmvVUJHv2I
Lex1jSZlAkEAyLgxp+dninReelj7Bwk7FY2wIeb5/E3dE3brC6mtqVRrWh8tn1pm
yRWqH9mjJRv29DZZtJs41LpGoAUQX4X8AQJACobI8IteeC9OIkhEamUIS5i2rt1d
L8nDOFeYf3U0VTvqoRHnryi1/RbcpBwvNDiaqq+8RKwRVaPB0C7PJzCV+QJAMBZY
5yX8W2JXxC4PLfdbLWW9ndGtcHHjFie2Vhv3nAq6kWPI1VWeLGzBTlIg0OIrPwTK
ZweNDQH3q5yq+IesAQJBANcdJLlwriLwzXnDeDbki/M/TUssiVGtCWLnrxwT1Yi8
IAxrYAWdS9Qb/EaZamqyMKizp9kyMSpPwWHhFSJtT58=
-----END RSA PRIVATE KEY-----

public publicEncrypt(message: string): string source

encryption message with public keys

Params:

NameTypeAttributeDescription
message string

data for encrypt

Return:

string

encrypted data

Example:

const encryptedMessage = rsaInstance.publicEncrypt('hello')

encryptedMessage -> `ca6e7d0571563b46b82a873c196e53d7322f2d5f510a5185d4a94b0ecbfea966160
d4b0be160684a5b9b0c2b6d429d331a950210e5545ee133793f604f417f93c63af4509db79f90a89d0c87c7c
87dc6873a89575b0c985f8cc159bae781f88607c4ed8d2a6df4aac33c0ca91581debe50b7fef2fc76e71ad7c
e3c0191d7c1497199c2a317bd475a27988d71bfa5a33d23d1be19791a9bded0292836b0d10e5e4d7fa1bd092
9f5cabdb6082f2882c12dadebe23b3682e625618cd5a57d9727eb06192ab4703277128771d193aa69ea30123
409c7205827375c34d4c22544d09c1c128d8edd9124d62aa062f6642bd7e3e468888e1a78c7e80206361ef131ecee`

public publicKeyToPEM(): string source

generate public key in PEM format

Return:

string

key

Example:

const publicPEM = rsaInstance.publicKeyToPEM()
console.log(publicPEM)
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAK16WP6m1nr2u2ni6exttEXKBilplzT8aBGQlLBq/z3VaNmT92n8nvWz
hyMm4qBuc3vAq3YQKh4ETOv8EBZz/L12HV0t1KgeeXYs9UuKd0VELejtRm6aiDPh
fVvGVvqUSHZNXTieu33rXl7X5FL3MgE/QcavZkbiqF3nxIfU0ZJlAgMBAAE=
-----END RSA PUBLIC KEY-----

public signMessage(message: string): string source

sign message with private keys

Params:

NameTypeAttributeDescription
message string

message for sign

Return:

string

signature string

Example:

const signature = rsaInstance.signMessage('hello')

signature -> `5d21446e76ff38fe4688c1e7fd75c785d98cd7c5fabfd483c3cd27898d8e2931b176609bb5d28e5d6319c3e814ebcd96ae58
2ab3984b5309678d421672635b3fd643e840a1efa2e9cba7d27afaeb8534ca6338bf73aa10864f3406f1c484a85012d1c1a9
87398f28b75d8b79c521d548a944a4eaa1bfe56c0b715b43dede3d41`

public verify(message: string, signature: string): boolean source

verify signature with public keys

Params:

NameTypeAttributeDescription
message string

signature data

signature string

signature

Return:

boolean

verify result

Example:

const verify = rsaInstance.verify(
 'hello',
 `5d21446e76ff38fe4688c1e7fd75c785d98cd7c5fabfd483c3cd27898d8e2931b176609bb5d28e5d6319c3e814ebcd96ae58
  2ab3984b5309678d421672635b3fd643e840a1efa2e9cba7d27afaeb8534ca6338bf73aa10864f3406f1c484a85012d1c1a9
  87398f28b75d8b79c521d548a944a4eaa1bfe56c0b715b43dede3d41`
)

verify -> true