API JavaScript HSM Dinamo
    theme_preparing_search_index
    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<ArrayBufferLike>>;
        edDsaSign(
            type: BLOCKCHAIN_EdDSA_TYPE,
            privKeyName: string,
            data: Buffer,
        ): Promise<Buffer<ArrayBufferLike>>;
        getPubKey(
            type: BLOCKCHAIN_GET_PUB_KEY_TYPE,
            privKeyName: string,
        ): Promise<Buffer<ArrayBufferLike>>;
        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<ArrayBufferLike>>;
        sign(
            type: BLOCKCHAIN_SIG_TYPE,
            hashMode: BLOCKCHAIN_HASH_MODE,
            hash: Buffer,
            pk: string,
        ): Promise<Buffer<ArrayBufferLike>>;
        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<ArrayBufferLike>>;
        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<ArrayBufferLike>>;
        abn128RndCtxGetPt(
            x: string | Buffer<ArrayBufferLike>,
            y: string | Buffer<ArrayBufferLike>,
        ): Promise<Buffer<ArrayBufferLike>>;
        abn128RndCtxMultAdd(
            keyName: string,
            scalar: string | Buffer<ArrayBufferLike>,
        ): Promise<Buffer<ArrayBufferLike>>;
        abn128RndScs(): Promise<Buffer<ArrayBufferLike>[]>;
        abn128RndSc(): Promise<Buffer<ArrayBufferLike>>;
        abn128RndCtxRefresh(
            x: string | Buffer<ArrayBufferLike>,
            y: string | Buffer<ArrayBufferLike>,
        ): Promise<Buffer<ArrayBufferLike>>;
        abn128PscMult(
            keyName: string,
            x: string | Buffer<ArrayBufferLike>,
            y: string | Buffer<ArrayBufferLike>,
            neg?: boolean,
        ): Promise<Buffer<ArrayBufferLike>>;
    }
    theme_index

    kind_plural_method

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

      kind_plural_parameter

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

      • flag_optionalversion: null | VERSION_OPTIONS

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

      • flag_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.

      • flag_optionalpassphrase: null | string

      theme_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.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_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.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_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.

      kind_plural_parameter

      • name: string

        Nome da chave.

      theme_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.

      kind_plural_parameter

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

      theme_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.

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

      kind_plural_parameter

      • type: BLOCKCHAIN_EdDSA_TYPE

        Tipo da assinatura a ser gerada.

      • privKeyName: string

        Nome da chave privada.

      • data: Buffer

        Dados que serão assinados.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Assinatura gerada.

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

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

      kind_plural_parameter

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Chave pública.

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

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

      kind_plural_parameter

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

      theme_returns Promise<Buffer<ArrayBufferLike>>

      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

      ATENÇÃO

      Endereços P2TR (sem tweak de chave) devem ser usados com assinaturas BIP340/Schnorr apenas em cenários de single-key-setting (assinatura única).
    • Recupera as propriedades de uma chave usando o módulo blockchain.

      kind_plural_parameter

      • name: string

        Nome da chave privada.

      theme_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.

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

      kind_plural_parameter

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

      theme_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

    • Calcula um ponto a partir de outro ponto e um contexto randómico.

      kind_plural_parameter

      theme_returns Promise<Buffer<ArrayBufferLike>>

      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.

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

      kind_plural_parameter

      theme_returns Promise<Buffer<ArrayBufferLike>>

      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.

      theme_returns Promise<Buffer<ArrayBufferLike>[]>

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

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

    • Retrona um escalar randômico.

      theme_returns Promise<Buffer<ArrayBufferLike>>

      Retorna um buffer com o escalare randômico.

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

    • Atualiza o contexto randômico.

      kind_plural_parameter

      theme_returns Promise<Buffer<ArrayBufferLike>>

      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.

    • Multiplica um escalar pela chave privada.

      kind_plural_parameter

      theme_returns Promise<Buffer<ArrayBufferLike>>

      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.