internal SignerInformation()

in net/JetBrains.SignatureVerifier/src/Crypt/BC/SignerInformation.cs [49:92]


    internal SignerInformation(
      SignerInfo info,
      DerObjectIdentifier contentType,
      CmsProcessable content,
      IDigestCalculator digestCalculator)
    {
      this.info = info;
      this.sid = new SignerID();
      this.contentType = contentType;
      this.isCounterSignature = contentType == null;

      try
      {
        SignerIdentifier s = info.SignerID;

        if (s.IsTagged)
        {
          Asn1OctetString octs = Asn1OctetString.GetInstance(s.ID);

          sid.SubjectKeyIdentifier = octs.GetEncoded();
        }
        else
        {
          IssuerAndSerialNumber iAnds =
            IssuerAndSerialNumber.GetInstance(s.ID);

          sid.Issuer = iAnds.Name;
          sid.SerialNumber = iAnds.SerialNumber.Value;
        }
      }
      catch (IOException)
      {
        throw new ArgumentException("invalid sid in SignerInfo");
      }

      this.digestAlgorithm = info.DigestAlgorithm;
      this.signedAttributeSet = info.AuthenticatedAttributes;
      this.unsignedAttributeSet = info.UnauthenticatedAttributes;
      this.encryptionAlgorithm = info.DigestEncryptionAlgorithm;
      this.signature = info.EncryptedDigest.GetOctets();

      this.content = content;
      this.digestCalculator = digestCalculator;
    }