MS Crypto API

A Microsoft CryptoAPI é uma biblioteca de funções criptográficas disponível nas plataformas Microsoft Windows. Esta biblioteca não implementa os algoritmos diretamente, deixando esta tarefa a cargo de componentes chamados Cryptographic Service Providers (CSPs) que são extensões (DLL) desenvolvidas tanto pela própria Microsoft quanto por terceiros.

A CryptoAPI é a biblioteca recomendada de criptografia a ser usada em aplicações desenvolvidas para a plataforma Windows. Aplicações como MS Outlook e Exchange utilizam esta biblioteca.

O HSM Dinamo, além de sua API nativa, fornece uma CSP compatível com a CryptoAPI de forma que soluções já existentes podem ser facilmente integradas com o HSM local ou os serviços em nuvem.

A CSP é construída em torno da biblioteca nativa do Dinamo e suporta todos os algoritmos disponíveis no HSM.

Afinidade Sessão-Thread

As sessões do HSM possuem afinidade sessão-thread. O que significa que a mesma sessão não pode ser utilizada em várias threads ao mesmo tempo.

Provedor CSP

Nome do provedor: Dinamo HSM Cryptographic Provider
Tipo de provedor: 1 - PROV_RSA_FULL
  MD5 (MD5)
    dwDefaultLen=128 dwMinLen=128 dwMaxLen=128
    CALG_MD5
    Classe de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Sub-ideitificação de algoritmo: 0x3(3) ALG_SID_MD5
  SHA-1 (SHA-1)
    dwDefaultLen=160 dwMinLen=160 dwMaxLen=160
    CALG_SHA1
    Classe de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Sub-ideitificação de algoritmo: 0x4(4) ALG_SID_SHA1
  SHA-256 (SHA-256)
    dwDefaultLen=256 dwMinLen=256 dwMaxLen=256
    CALG_SHA_256
    Classe de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Sub-ideitificação de algoritmo: 0xc(12) ALG_SID_SHA_256
  SHA-384 (SHA-384)
    dwDefaultLen=384 dwMinLen=384 dwMaxLen=384
    CALG_SHA_384
    Classe de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Sub-ideitificação de algoritmo: 0xd(13) ALG_SID_SHA_384
  SHA-512 (SHA-512)
    dwDefaultLen=512 dwMinLen=512 dwMaxLen=512
    CALG_SHA_512
    Classe de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Sub-ideitificação de algoritmo: 0xe(14) ALG_SID_SHA_512
  SSL3 SHAMD5 (SSL3 SHAMD5)
    dwDefaultLen=288 dwMinLen=288 dwMaxLen=288
    CALG_SSL3_SHAMD5
    Classe de algoritmo: 0x8000(4) ALG_CLASS_HASH
    Tipo de algoritmo: 0x0(0) ALG_TYPE_ANY
    Sub-ideitificação de algoritmo: 0x8(8) ALG_SID_SSL3SHAMD5
  RSA SIGN (RSA SIGN)
    dwDefaultLen=1024 dwMinLen=512 dwMaxLen=4096
    CALG_RSA_SIGN
    Classe de algoritmo: 0x2000(1) ALG_CLASS_SIGNATURE
    Tipo de algoritmo: 0x400(2) ALG_TYPE_RSA
    Sub-ideitificação de algoritmo: 0x0(0) ALG_SID_RSA_ANY
  RSA KEYX (RSA KEYX)
    dwDefaultLen=1024 dwMinLen=512 dwMaxLen=4096
    CALG_RSA_KEYX
    Classe de algoritmo: 0xa000(5) ALG_CLASS_KEY_EXCHANGE
    Tipo de algoritmo: 0x400(2) ALG_TYPE_RSA
    Sub-ideitificação de algoritmo: 0x0(0) ALG_SID_RSA_ANY
  DES (DES)
    dwDefaultLen=56 dwMinLen=56 dwMaxLen=56
    CALG_DES
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0x1(1) ALG_SID_DES
  3DES-EDE (3DES-EDE)
    dwDefaultLen=112 dwMinLen=112 dwMaxLen=112
    CALG_3DES_112
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0x9(9) ALG_SID_3DES_112
  3DES-EDE (3DES-EDE)
    dwDefaultLen=168 dwMinLen=168 dwMaxLen=168
    CALG_3DES
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0x3(3) ALG_SID_3DES
  CALG_RC4 (CALG_RC4)
    dwDefaultLen=128 dwMinLen=128 dwMaxLen=128
    CALG_RC4
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x800(4) ALG_TYPE_STREAM
    Sub-ideitificação de algoritmo: 0x1(1) ALG_SID_RC4
  AES-128 (AES-128)
    dwDefaultLen=128 dwMinLen=128 dwMaxLen=128
    CALG_AES_128
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0xe(14) ALG_SID_AES_128
  AES-192 (AES-192)
    dwDefaultLen=192 dwMinLen=192 dwMaxLen=192
    CALG_AES_192
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0xf(15) ALG_SID_AES_192
  AES-256 (AES-256)
    dwDefaultLen=256 dwMinLen=256 dwMaxLen=256
    CALG_AES_256
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0x10(16) ALG_SID_AES_256
  CALG_RC2 (CALG_RC2)
    dwDefaultLen=112 dwMinLen=112 dwMaxLen=112
    CALG_RC2
    Classe de algoritmo: 0x6000(3) ALG_CLASS_DATA_ENCRYPT
    Tipo de algoritmo: 0x600(3) ALG_TYPE_BLOCK
    Sub-ideitificação de algoritmo: 0x2(2) ALG_SID_RC2

Provedor CNG

Nome do provedor: Dinamo HSM Cryptographic Provider
  Módulo de Provedor:
      UM(1): tacndcsp.dll
      0(1): 10001, 1
        0: KEY_STORAGE

  Algoritmos de Criptografia Assimétrica:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

  Algoritmos de Assinaturas:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

  Algoritmos Assimétricos:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

    NCryptCreatePersistedKey(Dinamo HSM Cryptographic Provider, RSA)
  Name:
  Algorithm Group: RSA
  Algorithm Name: RSA
  Length: 2048 (0x800)
  Lengths:
    dwMinLength = 512 (0x200)
    dwMaxLength = 8192 (0x2000)
    dwIncrement = 64 (0x40)
    dwDefaultLength = 2048 (0x800)
  Export Policy: 0 (0x0)
      (NCRYPT_ALLOW_EXPORT_FLAG -- 1)
      (NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG -- 2)
      (NCRYPT_ALLOW_ARCHIVING_FLAG -- 4)
      (NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG -- 8)

  Impl Type: 9 (0x9)
    NCRYPT_IMPL_HARDWARE_FLAG -- 1
      (NCRYPT_IMPL_SOFTWARE_FLAG -- 2)
    NCRYPT_IMPL_REMOVABLE_FLAG -- 8
      (NCRYPT_IMPL_HARDWARE_RNG_FLAG -- 10 (16))

  Key Usage: 16777215 (0xffffff)
    NCRYPT_ALLOW_DECRYPT_FLAG -- 1
    NCRYPT_ALLOW_SIGNING_FLAG -- 2
    NCRYPT_ALLOW_KEY_AGREEMENT_FLAG -- 4
    NCRYPT_ALLOW_KEY_IMPORT_FLAG -- 8
    NCRYPT_ALLOW_ALL_USAGES -- ffffff (16777215)

  Security Descr: D:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;FA;;;S-1-5-21-414208720-3607778739-1988866334-1002)(A;ID;FA;;;S-1-5-21-414208720-3607778739-1988866334-1010)
  APROVADO

  Todos os Algoritmos:
   RSA
    NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION -- 4
    NCRYPT_SIGNATURE_OPERATION -- 10 (16)

Last updated