interface Blockchain {
    create(name: string, type: BLOCKCHAIN_KEYS, exportable: boolean, temporary: boolean, version?: null | VERSION_OPTIONS, seed?: null | string, passphrase?: null | string): Promise<boolean>;
    delete(name: string): Promise<boolean>;
    block(name: string): Promise<boolean>;
    unblock(name: string): Promise<boolean>;
    createBip32ChildKeyDerivation(version: VERSION_OPTIONS, index: number, exportable: boolean, temporary: boolean, parentKeyName: string, childKeyName: string): Promise<KeyInfo>;
    hashData(hashMode: BLOCKCHAIN_HASH_MODE, data: Buffer): Promise<Buffer>;
    edDsaSign(type: BLOCKCHAIN_EdDSA_TYPE, privKeyName: string, data: Buffer): Promise<Buffer>;
    getPubKey(type: BLOCKCHAIN_GET_PUB_KEY_TYPE, privKeyName: string): Promise<Buffer>;
    edDsaVerify(type: BLOCKCHAIN_EdDSA_TYPE, pubKeyType: BLOCKCHAIN_PUB_KEY_TYPE, pubKey: Buffer, signature: Buffer, data: Buffer): Promise<boolean>;
    getAddress(type: ADDRESS_TYPE, version: ADDRESS_VERSION, hrp: ADDRESS_HRP, pk: string): Promise<Buffer>;
    sign(type: BLOCKCHAIN_SIG_TYPE, hashMode: BLOCKCHAIN_HASH_MODE, hash: Buffer, pk: string): Promise<Buffer>;
    getKeyInfo(name: string): Promise<KeyInfo>;
    import(format: IMPORT_EXPORT_FORMAT, exportable: boolean, temporary: boolean, name: string, data: string): Promise<boolean>;
    export(format: IMPORT_EXPORT_FORMAT, version: BLOCKCHAIN_EXPORT_VERSION, compressed: boolean, name: string): Promise<Buffer>;
    verify(sigType: BLOCKCHAIN_SIG_TYPE, hashMode: BLOCKCHAIN_HASH_MODE, hashData: Buffer, signature: Buffer, pubKeyType: BLOCKCHAIN_SIG_VERIFY_PUB_KEY_TYPE, pubSignature: Buffer): Promise<boolean>;
    pubKeyRecovery(sigType: BLOCKCHAIN_SIG_TYPE, hashMode: BLOCKCHAIN_HASH_MODE, hashData: Buffer, signature: Buffer): Promise<Buffer>;
    abn128RndCtxGetPt(x: string | Buffer, y: string | Buffer): Promise<Buffer>;
    abn128RndCtxMultAdd(keyName: string, scalar: string | Buffer): Promise<Buffer>;
    abn128RndScs(): Promise<Buffer[]>;
    abn128RndSc(): Promise<Buffer>;
    abn128RndCtxRefresh(x: string | Buffer, y: string | Buffer): Promise<Buffer>;
    abn128PscMult(keyName: string, x: string | Buffer, y: string | Buffer, neg?: boolean): Promise<Buffer>;
}

Methods

  • Cria uma chave Extended Private Key (XPrv) para a blockchain no padrão BIP32.

    Parameters

    • name: string

      Nome da chave no HSM.

    • type: BLOCKCHAIN_KEYS

      Tipo de geração da chave.

    • exportable: boolean

      Se a chave será exportável.

    • temporary: boolean

      Se a chave será temporária.

    • Optionalversion: null | VERSION_OPTIONS

      Versão da chave que deve ser passado de acordo com a opção do tipo

    • Optionalseed: null | string

      Buffer contendo os dados necessários para a geração da chave. Os dados de entrada devem ser passados de acordo com a opção do type de enums.BLOCKCHAIN_KEYS.

    • Optionalpassphrase: null | string

    Returns Promise<boolean>

    Chave criada.

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

    Código de exemplo: Criando uma chave blockchain

  • Deleta uma chave armazenada no HSM.

    Parameters

    • name: string

      Nome da chave.

    Returns Promise<boolean>

    Retorna true se a chave foi deletada com sucesso.

    Caso o nome da chave seja inválido.

    Caso ocorra algum erro na deleção da chave.

    Código de exemplo: Excluindo uma chave blockchain

  • Bloqueia uma chave no HSM.

    Parameters

    • name: string

      Nome da chave.

    Returns Promise<boolean>

    Retorna true se a chave foi bloqueada com sucesso.

    Caso o nome da chave seja inválido.

    Caso ocorra algum erro na deleção da chave.

    Código de exemplo: Bloqueando uma chave blockchain

  • Desbloqueia uma chave no HSM.

    Parameters

    • name: string

      Nome da chave.

    Returns Promise<boolean>

    Retorna true se a chave foi desbloqueada com sucesso.

    Caso o nome da chave seja inválido.

    Caso ocorra algum erro na deleção da chave.

    Código de exemplo: Desbloqueando uma chave blockchain

  • Faz uma operação de Child Key Derivation (CKD). Deriva uma chave Extended Private Key (XPrv) para a blockchain no padrão BIP32.

    Parameters

    • version: VERSION_OPTIONS

      Versão da chave.

    • index: number

      Índice da chave que será derivada. Chaves non hardened usam índice de 0 a 231-1 e chaves hardened (irrestritamente seguras) usam índices de 231 a 232-1, como especificado no padrão BIP32. É altamente recomendado gerar chaves hardened.

    • exportable: boolean

      Se a chave será exportável.

    • temporary: boolean

      Se a chave será temporária.

    • parentKeyName: string

      Nome da chave pai no HSM. Deve ser uma chave XPrv.

    • childKeyName: string

      Nome da chave que será derivada no HSM.

    Returns Promise<KeyInfo>

    Informações da chave derivada.

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

    Código de exemplo: Criando chave blockchain bip32 derivada

  • Gera uma assinatura EdDSA usando o módulo blockchain.

    Parameters

    • type: BLOCKCHAIN_EdDSA_TYPE

      Tipo da assinatura a ser gerada.

    • privKeyName: string

      Nome da chave privada.

    • data: Buffer

      Dados que serão assinados.

    Returns Promise<Buffer>

    Assinatura gerada.

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

    Código de exemplo: Assinando hash com chave EdDSA blockchain

  • Recupera uma chave pública a partir de uma chave privada usando o módulo blockchain.

    Parameters

    Returns Promise<Buffer>

    Chave pública.

    exceptions.HsmError Caso a chave privada não seja encontrada ou ocorra algum erro na operação.

    Código de exemplo: Recuperando uma chave pública blockchain

  • Recupera o endereço de uma chave usando o módulo blockchain.

    Parameters

    • type: ADDRESS_TYPE

      Tipo do endereço a ser gerado.

    • version: ADDRESS_VERSION

      Versão do endereço.

    • hrp: ADDRESS_HRP

      HRP (Human Readable Part) da chave.

    • pk: string

      Chave privada da qual será gerado o endereço ou o script-hash.

    Returns Promise<Buffer>

    Retorna o endereço.

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

    Código de exemplo: Obtendo o endereço blockchain a partir da chave privada

  • Recupera as propriedades de uma chave usando o módulo blockchain.

    Parameters

    • name: string

      Nome da chave privada.

    Returns Promise<KeyInfo>

    Retorna um objeto com os dados de blockchain da chave.

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

    Código de exemplo: Obtendo informações de uma chave blockchain

  • Importa uma chave privada usando o módulo blockchain_interfaces.

    Parameters

    • format: IMPORT_EXPORT_FORMAT

      Formato da chave a ser importada.

    • exportable: boolean

      Se a chave será exportável.

    • temporary: boolean

      Se a chave será temporária.

    • name: string

      Nome da chave privada.

    • data: string

      Chave privada no formato especificado em enums.IMPORT_EXPORT_FORMAT.

    Returns Promise<boolean>

    True se a importação foi efetuada ou uma exceção caso o contrário.

    exceptions.HsmError Caso ocorra algum erro na operação.

    Código de exemplo: Importando chave privada blockchain

  • Exporta uma chave privada usando o módulo blockchain.

    Parameters

    Returns Promise<Buffer>

    Buffer com a chave privada.

    exceptions.HsmError Caso ocorra algum erro na operação.

    Código de exemplo: Exportando chave privada blockchain

  • Multiplica um escalar pela chave privada e soma um escalar randômico.

    Parameters

    Returns Promise<Buffer>

    Retorna um buffer com o resultado da operação.

    Caso o nome da chave seja inválido.

    exceptions.InvalidParameterError Caso algum parâmetro informado seja invalido.

    exceptions.HsmError Caso ocorra algum erro na operação.

  • Retrona quatro escalares randômicos.

    Returns Promise<Buffer[]>

    Retorna um array de bufferes com os escalares randômicos.

    exceptions.HsmError Caso ocorra algum erro na operação.

  • Retrona um escalar randômico.

    Returns Promise<Buffer>

    Retorna um buffer com o escalare randômico.

    exceptions.HsmError Caso ocorra algum erro na operação.

  • Multiplica um escalar pela chave privada.

    Parameters

    Returns Promise<Buffer>

    Retorna um buffer com o ponto calculado.

    Caso algum parâmetro informado seja invalido.

    exceptions.InvalidParameterError Caso algum parâmetro informado seja invalido.

    exceptions.HsmError Caso ocorra algum erro na operação.