in net/JetBrains.SignatureVerifier/src/Crypt/AppleSignatureVerifier.cs [145:177]
public IEnumerable<DigestInfo> GetHashAgilityV2Hashes(SignedMessage signedMessage)
{
List<DigestInfo> tokens = new List<DigestInfo>();
var signersStore = signedMessage.SignedData.GetSignerInfos();
foreach (SignerInformation signer in signersStore.GetSigners())
{
if (signer.SignedAttributes != null)
{
var appleHashAgilitiesV2 = signer.SignedAttributes.GetAll(OIDs.APPLE_HASH_AGILITY_V2);
foreach (Attribute appleHashAgility in appleHashAgilitiesV2)
{
foreach (var appleHashAgilityValue in appleHashAgility.AttrValues)
{
var seq = (Asn1Sequence)appleHashAgilityValue;
if (seq.Count == 2 && seq[0] is DerObjectIdentifier)
{
var algorithmIdentifier = new AlgorithmIdentifier((DerObjectIdentifier)seq[0]);
var digest = Asn1OctetString.GetInstance(seq[1]).GetOctets();
var contentInfo = new DigestInfo(algorithmIdentifier, digest);
tokens.Add(contentInfo);
}
}
}
}
}
return tokens;
}