---
title: "Co-assinatura"
description: "Co-assinatura CAdES no PKI SDK: como agrupar em um mesmo pacote as assinaturas em paralelo de vários signatários do mesmo documento, com CadesSigner."
canonical: "https://docs.lacunasoftware.com/articles/pki-sdk/signatures/cades/co-sign"
locale: "pt-BR"
product: "PKI SDK"
last_updated: "2026-10-12"
---

# Co-assinatura

O PKI SDK permite que diferentes signatários que assinam um mesmo documento possam ser agrupados em um mesmo pacote de
assinatura. Esta modalidade de assinaturas em paralelo se chama co-assinatura e é prevista pelo padrão CAdES.

O exemplo abaixo demonstra uma co-assinatura básica:

```cs
// Assinatura CAdES básica prévia
byte[] cadesSig1 = ...

// Co-assinando a assinatura cadesSig1
PKCertificateWithKey signingCert2 = ...
var signer2 = new CadesSigner();        
signer2.SetSigningCertificate(signingCert2);
signer2.SetDataToSign(toSign);
signer2.SetPolicy(policy); 

// Definindo a assinatura prévia para co-assinatura
signer2.SetSignatureToCoSign(cadesSig1); 

signer2.ComputeSignature();

byte[] cadesCoSig = signer2.GetSignature();
```

> **Observação**
>
> Caso a assinatura cadesSig1 já tenha o documento assinado no encapsulated-content, não é necessária a chamada do método
> @Lacuna.Pki.Cades.CadesSigner.SetDataToSign(System.Byte[]) na co-assinatura.

Caso se tenha assinaturas paralelas de um mesmo documento, sem que se tenha utilizado o método
@Lacuna.Pki.Cades.CadesSigner.SetSignatureToCoSign(System.Byte[]), também é possível fundir as assinaturas em uma
co-assinatura através do método
`Lacuna.Pki.Cades.CadesSignatureEditor.MergeSignatures(IEnumerable<Lacuna.Pki.Cades.CadesSignature>)`
da classe @Lacuna.Pki.Cades.CadesSignatureEditor.

## Veja também

* @Lacuna.Pki.Cades.CadesSigner
* @Lacuna.Pki.Cades.CadesSignatureEditor
