Flag que determina se os dados do(s) certificado(s) serão retornados
Default: true
certChainData
Boolean
Flag que determina se os dados dos certificados da cadeia de confiança também serão retornados
Default: true
X509
Boolean
Flag que determina se o(s) certificado(s) utilizados na assinatura também serão retornados (x509 PEM)
Default: true
content
Boolean
Flag que determina se o conteúdo (bytes internos) usados durante a validação serão ou não retornados.
Útil para extração de conteúdo de assinaturas attached.
Default: true
Headers
Name
Type
Description
Authorization*
String
Credenciais para uso do endpoint,
Deve ter o sufixo "Basic " e o valor "appid:appsecret" (encodado em base64)
Ex: Basic YXBwaWQ6YXBwc2VjcmV0
Request Body
Name
Type
Description
file*
Binary
Envia os bytes do arquivo/assinatura
content
Binary
Envia os bytes do arquivo (separado da assinatura, utilizado somente para CMS/CaDEs detached)
Estrutura da resposta
Estrutura macro
Detalhando o array "signatures"
Detalhando o array "certs" dentro de um assinatura do array "signatures"
Visando a melhor perfomance da solução a aplicação GOCrypto realiza cache das ACs intermediárias (AC2 e AC1) e das LCRs respeitando o tempo de expiração.
{
"validate": { //Objeto com o status geral da validação do documento
"flag": true, //Flag macro se o documento é válido
"messages": [], //Array de mensagens sobre a validação do arquivo
"name": "sample7-pdfsignature.pdf", //Nome do arquivo
"date": "2022-10-21T01:50:30+0000", //Data hora do relátorio (validação)
"details": {
"signature": true, //Flag do status da asssinatura de todas as assinaturas
"ESS": true, //Flag do status da asssinatura (ESS) de todas as assinaturas
"certs": true //Flag da verificação dos certificados de todas as assinaturas
}
},
"signatures": [...] //Array de assinaturas
}
[
{
//... Um documento pode retornar mais de uma assinatura
},
{
"validate": { //Objeto com o status geral da validação da assinatura
"flag": true, //Flag macro se o documento é válido
"messages": [], //Array de mensagens sobre a validação da assinatura
"details": { //Flags de certificado e assinatura; Objetivo principal, detectar se o certificado indicado foi o utilizado para realizar a assinatura, e que assinatura está integra (não foi adulterada)
"signature": true, //Flag do status da validação da assinatura
"ESS": true, //Flag do status da validação da assinatura (ESS)
"certs": true ////Flag da verificação dos certificados da assinatura
}
},
"data": { //Array de objetos com informações sobre a assinatura
"version": "v1", //Versão da assinatura
"digestAlgorithm": "sha256", //Algoritmo de hash utilizado para digerir o conteúdo assinado
"signedAttrs": { //Array de attributos assináveis
"contentType": true,
"signingTime": "2022-09-06T13:10:10+0000", //Attributo utilizado em assinaturas CMS/CADES e PDFSignature (internacional)
"messageDigest": true,
"signingCertificateV2": true
},
"signatureAlgorithm": "rsaEncryption",
"signatureTime": {
"m": "2022-09-06T13:10:11+0000", //Referência temporal (Extraida do PDF)
"signedAttr": "2022-09-06T13:10:10+0000" //Referência temporal (Extraida do attributo assinável)
}
},
"certs": [...], //Array de certificados utilizados na assinatura
"pdf": { //Objeto detalhando os elementos incluídos no PDF (Somente PDFSignature e PaDES)
"visibleSignature": {
"name": "Signature1", //Nome do field no AcroForm
"width": 0, //Largura do field (quando houver assinatura visivel)
"height": 0, //Altura do field (quando houver assinatura visivel)
"page": 1, //Página que o field será colocado (quando houver assinatura visivel)
"pageHeight": 842, //Altura da página
"pageWidth": 596, //Largura da página
"pageRotation": 0, //Rotação da página (Paisagem/Retrato)
"x": 0, //Posição do eixo X do field (quando houver assinatura visivel)
"y": 842, //Posição do eixo Y do field (quando houver assinatura visivel)
"position": "Signature1::1::0.0::842.0::0.0::0.0",
"filter": "/Adobe.PPKLite", //Tipo de filter utilizado para a assinatura
"subfilter": "/adbe.pkcs7.detached", //Tipo de subfilter utilizado para a assinatura
"signatureType": "approval", //Tipo de assinatura utilizado no PDF
"isFillInAllowed": true,
"isAnnotationsAllowed": true,
"m": "D:20220906131011Z", //Attributo M (momento da assinatura)
"revision": 1 //Versão/Revisão (controle de versionamento do PDF)
}
}
}
]
[
{
//... Uma assinatura pode conter mais de um certs (Co-assinatura)
},
{
"flag": true, //Flag macro se o certificado é válido
"isCertSignatureValidated": true, //Flag se a assinatura (caminho) do certificado é válido
"isRevoked": false, //Flag se o certificado é revogado
"isExpired": false, //Flag se o certificado é expirado
"isTrust": true, //Flag se o certificado é confiável (está na cadeia de confiança)
"chain": [...], //Array detalhando certificados da cadeia de confiança, possui um a estrutura de dados semlhante a essa que está sendo descrita aqui... (Certificados da AC's)
"data": { //Dados do certificado
"validate": { //Parâmetros de período de validação
"notBefore": "2022-07-27T18:16:31+0000", //Não válido antes de:
"notAfter": "2027-07-26T18:16:31+0000" //Não válido depois de:
},
"version": "v3", //Versão do certificado
"dn": "C=BR, O=ICP-Brasil, OU=Secretaria da Receita Federal do Brasil - RFB, OU=RFB e-CPF A3, OU=VALID, OU=AR ATOS CERTIFICADORA, OU=Videoconferencia, OU=24226997000160, CN=PAULO FILIPE MACEDO DOS SANTOS:04660457192", //DN do certificado
"cn": "PAULO FILIPE MACEDO DOS SANTOS:04660457192", //CN do certificado
"basicConstraints": {
"cA": false //Constraints básicas, Flag de CA (certificado pode ou não ser utilizado para assinar outro certificado)
},
"issuerCn": "AC VALID RFB v5", //CN do emissor (um nível acima)
"serialNumberHex": "4e474011cd4443c7", //Número serial encodado em hexadecimal
"keyIdentifier": false,
"fingerprint": "713c87fd594d4abc2a0c659885a4a1e2db7f83d1", //Assinatura única do certificado
"keyUsage": [ //Tipo/Propósito de uso previsto para o certificado
"keyEncipherment",
"nonRepudiation",
"digitalSignature"
],
"extKeyUsage": [ //Tipo/Propósito de uso previsto para o certificado
"id-kp-clientAuth",
"id-kp-emailProtection"
],
"algorithm": "sha256WithRSAEncryption", //Algoritmo de assinatura do certificado
"policy": { //Politica de emissão da AC (Autoridade Certificadora)
"oid": "2.16.76.1.2.3.36", //Número do (Object Identifier) da politica
"dpc": "http://icp-brasil.validcertificadora.com.br/ac-validrfb/dpc-ac-validrfbv5.pdf", //Link da DPC da AC
"name": "A3", //Nome da politica
"type": "PF" //Tipo da politica
},
"subject": { //Dados do titular do certificado
"email": "paulo@gestao-online.com",
"cei": "000000000000",
"tituloEleitor": {
"numero": "000000000000",
"zona": "000",
"secao": "0000",
"municipio": ""
}
},
"responsible": { //Dados do responsável do certificado
"dataNascimento": "1990-02-10",
"cpf": "04660457192",
"nis": "00000000000",
"rg": {
"numero": "000000000000000",
"emissor": ""
}
},
"publicKey": { //Dados da chave pública
"algorithm": "rsaEncryption",
"bits": 2048 //Tamanho da chave (Ex: 2048, 4096)
}
},
"revokeData": { //Dados utilizados para validação do status de revogação do certificado
"crl": { //Utilizado o metódo de verificação de LCR (Lista de certificados revogados)
"number": "91070", //Número da LCR
"last_update": "2022-10-21T01:24:12+0000", //Quando foi gerada/atualizada a LCR
"next_update": "2022-10-21T02:24:12+0000", //Até quando pode ser utilizada a LCR (expiração)
"origin": "cache", //Origem da LCR no momento da validação (Cache interno ou download no repositório da AC)
"checksum": "5bc62b05d079e862be2e0470e7285cba1b3abe8b11290754dece018eeb3f05a9" //Hash da LCR (checksum)
}
}
}
}
]