File

src/crypto/node/crypto.ts

Implements

Crypto

Index

Methods

Methods

decodeBase64StringUtf8
decodeBase64StringUtf8(base64: string)
Parameters :
Name Type Optional
base64 string No
Returns : string
encodeBase64StringUtf8
encodeBase64StringUtf8(text: string)
Parameters :
Name Type Optional
text string No
Returns : string
randomBytesBase64
randomBytesBase64(count: number)
Parameters :
Name Type Optional
count number No
Returns : string
Async sha256DigestBase64
sha256DigestBase64(str: string)
Parameters :
Name Type Optional
str string No
Returns : Promise<string>
Async sign
sign(privateKey: string, data: string | Buffer)
Parameters :
Name Type Optional
privateKey string No
data string | Buffer No
Returns : Promise<string>
Async verify
verify(pubkey: string, data: string | Buffer, signature: string)
Parameters :
Name Type Optional
pubkey string No
data string | Buffer No
signature string No
Returns : Promise<boolean>
import * as crypto from 'crypto';
import {Crypto} from '../crypto';

export class NodeCrypto implements Crypto {
  async sha256DigestBase64(str: string): Promise<string> {
    return crypto.createHash('sha256').update(str).digest('base64');
  }

  randomBytesBase64(count: number): string {
    return crypto.randomBytes(count).toString('base64');
  }

  async verify(
    pubkey: string,
    data: string | Buffer,
    signature: string
  ): Promise<boolean> {
    const verifier = crypto.createVerify('sha256');
    verifier.update(data);
    verifier.end();
    return verifier.verify(pubkey, signature, 'base64');
  }

  async sign(privateKey: string, data: string | Buffer): Promise<string> {
    const signer = crypto.createSign('RSA-SHA256');
    signer.update(data);
    signer.end();
    return signer.sign(privateKey, 'base64');
  }

  decodeBase64StringUtf8(base64: string): string {
    return Buffer.from(base64, 'base64').toString('utf-8');
  }

  encodeBase64StringUtf8(text: string): string {
    return Buffer.from(text, 'utf-8').toString('base64');
  }
}

result-matching ""

    No results matching ""