static EncryptionAlgorithm[] DecodeEncryptionAlgorithms (byte[] rawData)
{
using (var memory = new MemoryStream (rawData, false)) {
using (var asn1 = new Asn1InputStream (memory)) {
var algorithms = new List<EncryptionAlgorithm> ();
var sequence = asn1.ReadObject () as Asn1Sequence;
if (sequence == null)
return null;
for (int i = 0; i < sequence.Count; i++) {
var identifier = AlgorithmIdentifier.GetInstance (sequence[i]);
EncryptionAlgorithm algorithm;
if (TryGetEncryptionAlgorithm (identifier, out algorithm))
algorithms.Add (algorithm);
}
return algorithms.ToArray ();
}
}
}