interface Cryptography {
    mOfnSplit(m: number, n: number, secret?: null | string): Promise<MofNSplit>;
    mOfNRecover(parts: Buffer[]): Promise<Buffer>;
    rsaSign(keyName: string, hashAlgorithm: HASH_ALGORITHMS, hash: Buffer, pad: PAD_TYPE): Promise<Buffer>;
    rsaVerify(keyName: string, hashAlgorithm: HASH_ALGORITHMS, pad: PAD_TYPE, hash: Buffer, signature: Buffer): Promise<boolean>;
    eccSign(keyName: string, hashAlgorithm: HASH_ALGORITHMS, hash: Buffer): Promise<Buffer>;
    eccVerify(keyName: string, hashAlgorithm: HASH_ALGORITHMS, hash: Buffer, signature: Buffer): Promise<boolean>;
    eddsaSign(keyName: string, hash: Buffer): Promise<Buffer>;
    eddsaVerify(keyName: string, hash: Buffer, signature: Buffer): Promise<boolean>;
    dataUnenvelop(keyName: string, data: Buffer, paddingOption: ENC_DEC_PADDING): Promise<Buffer>;
    dataEnvelop(pubKey: Buffer, keyLength: RSA_LENGTH_KEYS, data: Buffer, paddingOption: ENC_DEC_PADDING): Promise<Buffer>;
    genRand(len: number): Promise<Buffer>;
}

Methods

  • Reconstrói o segredo M de N a partir das partes dos custodiantes. Conforme o padrão de compartilhamento de segredos de Shamir.

    Parameters

    Returns Promise<Buffer>

    Retorna um buffer com o segredo reconstruído.

    exceptions.HsmError Caso não seja possível reconstruir o segredo ou ocorra algum erro na operação.

    Código de exemplo: Reconstruindo um segredo em M de N

  • Assina um dado utilizando uma chave privada RSA.

    Parameters

    • keyName: string

      Nome da chave.

    • hashAlgorithm: HASH_ALGORITHMS

      Algoritmo utilizado para gerar a hash do dado.

    • hash: Buffer

      Hash do dado que será assinado.

    • pad: PAD_TYPE

      Tipo de padding que será utilizado na assinatura.

    Returns Promise<Buffer>

    Retorna um buffer com a assinatura do dado.

    exceptions.HsmError Caso não seja possível assinar o dado ou ocorra algum erro na operação.

    Código de exemplo: Assinando hash com RSA

  • Verifica uma assinatura de um dado utilizando uma chave RSA.

    Parameters

    • keyName: string

      Nome da chave.

    • hashAlgorithm: HASH_ALGORITHMS

      Algoritmo utilizado para gerar a hash do dado.

    • pad: PAD_TYPE

      Tipo de padding que será utilizado na assinatura.

    • hash: Buffer

      Hash do dado que será verificado.

    • signature: Buffer

      Assinatura do dado que será verificado.

    Returns Promise<boolean>

    Retorna true caso a assinatura seja válida e false caso contrário.

    exceptions.HsmError Caso não seja possível verificar a assinatura ou ocorra algum erro na operação.

    Código de exemplo: Verificando assinatura de hash com RSA

  • Assina um dado utilizando uma chave privada ECC.

    Parameters

    • keyName: string

      Nome da chave.

    • hashAlgorithm: HASH_ALGORITHMS

      Algoritmo utilizado para gerar a hash do dado.

    • hash: Buffer

      Hash do dado que será assinado.

    Returns Promise<Buffer>

    Retorna um buffer com a assinatura do dado.

    exceptions.HsmError Caso não seja possível assinar o dado ou ocorra algum erro na operação.

    Código de exemplo: Assinando hash com ECC

  • Verifica uma assinatura de um dado utilizando uma chave ECC.

    Parameters

    • keyName: string

      Nome da chave.

    • hashAlgorithm: HASH_ALGORITHMS

      Algoritmo utilizado para gerar a hash do dado.

    • hash: Buffer

      Hash do dado que será verificado.

    • signature: Buffer

      Assinatura do dado que será verificado.

    Returns Promise<boolean>

    Retorna true caso a assinatura seja válida e false caso contrário.

    exceptions.HsmError Caso não seja possível verificar a assinatura ou ocorra algum erro na operação.

    Código de exemplo: Verificando assinatura de hash com ECC

  • Assina um dado utilizando uma chave privada EdDSA.

    Parameters

    • keyName: string

      Nome da chave.

    • hash: Buffer

      Hash do dado que será assinado.

    Returns Promise<Buffer>

    Retorna um buffer com a assinatura do dado.

    exceptions.HsmError Caso não seja possível assinar o dado ou ocorra algum erro na operação.

    Código de exemplo: Assinando hash com EdDSA

  • Verifica uma assinatura de um dado utilizando uma chave EdDSA.

    Parameters

    • keyName: string

      Nome da chave.

    • hash: Buffer

      Hash do dado que será verificado.

    • signature: Buffer

      Assinatura do dado que será verificado.

    Returns Promise<boolean>

    Retorna true caso a assinatura seja válida e false caso contrário.

    exceptions.HsmError Caso não seja possível verificar a assinatura ou ocorra algum erro na operação.

    Código de exemplo: Verificando assinatura de hash com EdDSA

  • Desenvelopa dados utilizando uma chave RSA.

    Parameters

    • keyName: string

      Nome da chave privada RSA.

    • data: Buffer

      Dado que será desenvelopado.

    • paddingOption: ENC_DEC_PADDING

      Opção de preenchimento usada na criptografia dos dados.

    Returns Promise<Buffer>

    Retorna o dado desenvelopado.

    exceptions.HsmError Caso não seja possível desenvelopar o dado ou ocorra algum erro na operação.

  • Envelopa dados utilizando uma chave pública RSA.

    Parameters

    • pubKey: Buffer

      Chave pública RSA que será utilizada para envelopar o dado.

    • keyLength: RSA_LENGTH_KEYS
    • data: Buffer

      Dado que será envelopado.

    • paddingOption: ENC_DEC_PADDING

      Opção de preenchimento usada na criptografia dos dados.

    Returns Promise<Buffer>

    Retorna o dado envelopado.

    exceptions.HsmError Caso não seja possível envelopar o dado ou ocorra algum erro na operação.

  • Retorna um conjunto de bytes pseudo-aleatorios de tamanho len para uso em criptografia.

    Parameters

    • len: number

      Número de bytes a serem gerados. O valor deverá estar entre 0 e 4294967295

    Returns Promise<Buffer>

    Retorna um buffer contendo um conjunto de bytes pseudo-aleatórios de tamanho len.

    exceptions.HsmError Caso não seja possível recuperar os bytes ou ocorra algum erro na operação.

    Código de exemplo: Gerando um conjunto de bytes aleatórios