Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
BLOBs são usados com o provedor Digital Signature Standard (DSS) para exportar chaves e importar chaves para o CSP ( provedor de serviços de criptografia).
BLOBs de chave pública
Um DSS de chave pública é exportado e importado como um BLOB, uma sequência de bytes estruturada da seguinte forma.
PUBLICKEYSTRUC publickeystruc;
DSSPUBKEY dsspubkey;
BYTE p[dsspubkey.bitlen/8];
BYTE q[20];
BYTE g[dsspubkey.bitlen/8];
BYTE y[dsspubkey.bitlen/8];
DSSSEED seedstruct;
A tabela a seguir descreve esses componentes. Todos os valores estão em formato little-endian.
| Domínio | Descrição |
|---|---|
| dsspubkey | Um DSSPUBKEY estrutura. A magia membro deve ter um valor de 0x31535344. Este número hexadecimal é o ASCII codificação do DSS1. |
| g | Uma sequência de BYTE. O gerador, g. Deve ter o mesmo comprimento que p. Se não for o mesmo comprimento que p, então ele deve ser preenchido com 0x00 bytes. |
| p | Uma sequência de BYTE. O módulo primo, p. O bit mais significativo do byte mais significativo deve ser definido como um. |
| publickeystruc | Uma PUBLICKEYSTRUC estrutura. |
| q | Uma sequência de BYTE. O prime, q, 20 bytes de comprimento. O bit mais significativo do byte mais significativo deve ser definido como um. |
| seedstruct | Uma estrutura DSSSEED. Valores de semente e contador para verificação de primos. |
| y | Uma sequência de BYTE. A chave pública, y. Deve ter o mesmo comprimento que p. Se não for o mesmo comprimento que p, então ele deve ser preenchido com 0x00 bytes. |
Observação
BLOBs de chave pública não são criptografados. Eles contêm chaves públicas em texto simples forma.
BLOBs de chave privada
Umde chave privada DSSé exportado e importado como uma sequência de bytes estruturada da seguinte forma.
PUBLICKEYSTRUC publickeystruc;
DSSPUBKEY dsspubkey;
BYTE p[dsspubkey.bitlen/8];
BYTE q[20];
BYTE g[dsspubkey.bitlen/8];
BYTE x[20];
DSSSEED seedstruct;
A tabela a seguir descreve cada componente. Todos os valores estão em formato little-endian.
| Domínio | Descrição |
|---|---|
| dsspubkey | Um DSSPUBKEY estrutura. A magia membro deve ser definida como 0x32535344. Este número hexadecimal é o ASCII codificação do DSS2. |
| g | Uma sequência de BYTE. O gerador, g. Deve ter o mesmo comprimento que p. Se não for o mesmo comprimento que p, então ele deve ser preenchido com 0x00 bytes. |
| publickeystruc | Uma PUBLICKEYSTRUC estrutura. |
| p | Uma sequência de BYTE. O módulo primo, p. O bit mais significativo do byte mais significativo deve ser definido como um. |
| q | Uma sequência de BYTE. O prime, q. q tem 20 bytes de comprimento. O bit mais significativo do byte mais significativo deve ser definido como um. |
| seedstruct | Uma estrutura DSSSEED. Valores de semente e contador para verificação de primos. |
| x | Uma sequência de BYTE. O expoente secreto, x. Deve ter sempre 20 bytes de comprimento. Se x tiver menos de 20 bytes de comprimento, então ele deve ser preenchido com 0x00. |
Ao chamar CryptExportKey, o desenvolvedor pode escolher se deseja criptografar a chave. O PRIVATEKEYBLOB será criptografado se o parâmetro hExpKey contiver um identificador válido para uma chave de sessão. Tudo, exceto o PUBLICKEYSTRUC parte do BLOB é criptografado.
Observação
O algoritmo de encriptação e os parâmetros da chave de encriptação não são armazenados juntamente com o BLOB da chave privada. O aplicativo deve gerenciar e armazenar essas informações. Se zero for passado para hExpKey, a chave privada será exportada sem encriptação.
Atenção
É perigoso exportar chaves privadas sem encriptação porque são vulneráveis à interceção e utilização por entidades não autorizadas.