public static MyPolicy getHashPolitica(string PolicyUriSource, string PolicyIdentifier = "2.16.76.1.7.1.2.2.3", string PolicyDigestAlgorithm = "SHA-256", string FileName = "LPA_CAdES.der")
{
MyPolicy Retorno = new MyPolicy();
Retorno.PolicyIdentifier = PolicyIdentifier;
Retorno.PolicyDigestAlgorithm = PolicyDigestAlgorithm;
Retorno.URLPolicy = PolicyUriSource;
Stream St;
try
{
St = Helper.FileHelper.MSReadFileURL(PolicyUriSource);
}
catch (Exception ex)
{
//FileStream File = Helper.FileHelper.FSReadFile(System.AppDomain.CurrentDomain.BaseDirectory + FileName);
//St = File;
St = new MemoryStream(Properties.Resources.LPA_CAdES);
}
DerSequence privKeyObj = (DerSequence)Asn1Object.FromStream(St);
var objCollection = privKeyObj.GetEnumerator();
objCollection.MoveNext();
Org.BouncyCastle.Asn1.Asn1Sequence objPrincipal = (Org.BouncyCastle.Asn1.Asn1Sequence)objCollection.Current;
var Politicas = objPrincipal.GetObjects();
while (Politicas.MoveNext())
{
Org.BouncyCastle.Asn1.Asn1Sequence Politica = (Org.BouncyCastle.Asn1.Asn1Sequence)Politicas.Current;
var Itens = Politica.GetObjects();
Itens.MoveNext();
string item1 = Itens.Current.ToString();
Itens.MoveNext();
string item2 = Itens.Current.ToString();
if (item2.Contains(PolicyIdentifier))
{
Itens.MoveNext();
string item3 = Itens.Current.ToString();
Retorno.SubURLPolicy = item3.Replace("[", "").Replace("]", "");
Itens.MoveNext();
Org.BouncyCastle.Asn1.Asn1Sequence item4 = (Org.BouncyCastle.Asn1.Asn1Sequence)Itens.Current;
var Item4d = item4.GetObjects();
Item4d.MoveNext();
Retorno.SubPolicyIdentifier = Item4d.Current.ToString().Replace("[", "").Replace("]", "");
Item4d.MoveNext();
Retorno.Hash = Item4d.Current.ToString();
}
}
St.Close();
return(Retorno);
}