Pular para o conteúdo principal
Version: 4.42

Métodos DSS

O serviço de assinatura de documentos do Redtrust cumpre o padrão DSS da OASIS e algumas de suas extensões.

O serviço é composto por três métodos:

1. GetAccessibleCertificates​

Este método obtém a lista de certificados disponíveis para o usuário autenticado, com base nas políticas de autorização do Redtrust.

Para chamar este método, você deve se autenticar como o usuário cujos certificados deseja obter. A resposta inclui um objeto Result que contém a lista de certificados acessíveis.

Na resposta, é retornado um objeto Result, com um ResultStatus em estado de sucesso indicando que nenhum erro ocorreu. Também é retornado um ResultMessage com uma mensagem descritiva e um objeto ResultData, que é uma lista de objetos Certificate.

Cada objeto Certificate contém as informações necessárias para seu uso. Por exemplo:

ParâmetrosDescrição
needPinIndica se é necessário um PIN para usar o certificado.
thumbprintIdentificador usado em SignHash e SignRequest; o campo expiration permite verificar se o certificado expirou.
aliasNome atribuído ao certificado na configuração do Redtrust.
issuer ou subjectInformações extraídas diretamente do certificado para esses campos ou, na ausência delas, a própria impressão digital.
X509DataParte pública do certificado. O conteúdo deste atributo é codificado em Base64 para poder ser incluído na resposta.
filterFiltro opcional para a lista de certificados retornada. Permite filtrar por qualquer string incluída no campo subject do certificado. Se for omitido ou estiver vazio, o serviço retorna todos os certificados acessíveis.

2. SignHash​

Este método realiza uma assinatura digital sobre um hash previamente calculado, utilizando o certificado selecionado.

Você deve chamar o método SignHash e fornecer:

  • O hash que será assinado
  • O tipo de assinatura
  • Os dados de identificação do certificado

O serviço gera uma assinatura no formato PKCS#1. Nas seções seguintes, são fornecidos mais detalhes e exemplos.

Os parâmetros de entrada do método são:

ParâmetrosDescrição
toSignHashHash binário codificado em Base64.
thumbprintImpressão digital do certificado.
certificatePinPIN do certificado (opcional).
algorithmAlgoritmo de hash; os valores suportados são RSA_SHA1, RSA_SHA256, RSA_SHA512, ECDSA_SHA256, ECDSA_SHA384, ECDSA_SHA512.

Na resposta, é retornado um objeto Result com os seguintes campos:

CampoDescrição
ResultStatusCódigo de resultado; SUCCESS se a assinatura foi realizada com sucesso.
ResultMessageMensagem que descreve o resultado da operação.
ResultDataContém o resultado da operação se a assinatura foi realizada com sucesso (opcional).

Consulte os códigos de resposta Result deste documento para conhecer os possíveis códigos de erro que podem ser retornados na resposta.

3. SignRequest​

Realiza uma operação completa de assinatura de documentos baseada no padrão DSS da OASIS.

Para usar este método, envie um objeto SignRequest válido que cumpra o esquema DSS e suas extensões. A solicitação especifica o perfil de assinatura, o certificado de assinatura e o documento de entrada. O servidor responde com um objeto SignResponse que contém:

  • Um código de resposta e uma mensagem
  • O resultado da operação de assinatura

Estrutura da solicitação​

Os campos a seguir constituem o núcleo da maioria das solicitações de assinatura. Dependendo da configuração do perfil de assinatura, alguns campos podem ser forçados pelo perfil e omitidos da solicitação.

CampoLocalizaçãoDescrição
ProfileAtributo de SignRequestIdentifica o perfil de assinatura configurado no Redtrust. O perfil pode forçar o modo de assinatura, o nível e outras opções.
RequestIDAtributo de SignRequestIdentificador retornado na resposta para facilitar a correlação entre solicitações e respostas.
OptionalInputsCorpo de SignRequestEntradas opcionais que influenciam como a assinatura é gerada.
KeySelectorOptionalInputsSeleciona o certificado de assinatura (normalmente por meio da impressão digital).
AdditionalKeyInfoOptionalInputsInformações adicionais da chave exigidas pelo certificado, como um PIN.
SignatureFormOptionalInputsForma de assinatura usada pelo serviço para validar e processar a solicitação.
Elemento de modo de assinaturaOptionalInputsEspecifica como a assinatura se relaciona com o documento quando o perfil não a força (por exemplo, enveloped, enveloping ou detached).
InputDocumentsCorpo de SignRequestContêiner do documento ou dos documentos que serão assinados.
DocumentInputDocumentsDocumento de entrada. O atributo ID pode ser referenciado por outros elementos da solicitação.
Elemento de conteúdo do documentoDocumentFornece o conteúdo do documento (binário ou XML), de acordo com o cenário de assinatura.

Para ver exemplos completos de solicitações e respostas, consulte Exemplos da API DSS.

Para obter definições detalhadas, valores suportados e restrições de elementos DSS como Profile, SignatureForm e InputDocuments, consulte a referência da API DSS.

Para a estrutura normativa das mensagens DSS, consulte a especificação da OASIS:

Esta página foi útil?