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

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

    • parts: Buffer<ArrayBufferLike>[]

      Array de buffers com as partes do segredo geradas pela função Cryptography.mOfnSplit.

    Returns Promise<Buffer<ArrayBufferLike>>

    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<ArrayBufferLike>>

    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.

  • 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<ArrayBufferLike>>

    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.

  • 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<ArrayBufferLike>>

    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.

  • 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<ArrayBufferLike>>

    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<ArrayBufferLike>>

    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<ArrayBufferLike>>

    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.