testoval jsem dále vaší aplikaci a řešil problém ohledně přidání podpory RSA-SHA256 do net framework 3.5 a nižší. Vzhledem k tomu, že není dostupná nebo tedy že neexistuje metoda AddAlgorithm pokusil jsem se přidat podpis přímo do interního field v CryptoConfig. pomocí níže uvedeného postupu. Dle mého porovnání obou případů se zdá že vše funguje stejně a není tudíž nutné používat uvedenou knihovnu, což je poměrně složité...
Možná že mne něco uniká a tím pádem to nebude fungovat, pokud by jste mne mohl poslat váš názor budu rád.
Děkuji
public Utils()
{
// ručně musíme přidat podporu pro podpisy RSA-SHA-256, .NET framework ji standardně nepodporuje
// pro starší verze .NET frameworku je navíc potřeba doinstalovat knihovny z adresy http://clrsecurity.codeplex.com/wikipage?title=Security.Cryptography.RSAPKCS1SHA256SignatureDescription&referringTitle=Security.Cryptography.dll
//RSAPKCS1SHA256SignatureDescription desc = new RSAPKCS1SHA256SignatureDescription();
//System.Security.Cryptography.CryptoConfig.AddAlgorithm(desc.GetType(), "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256");
if (CryptoConfig.CreateFromName("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256") == null)
{
var cType = typeof(System.Security.Cryptography.CryptoConfig);
var property = cType.GetField("defaultNameHT", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
//var data = property.GetValue(null) as System.Collections.Generic.Dictionary<string, object>;
var data = property.GetValue(null) as System.Collections.Hashtable;
data.Add("http://www.w3.org/2001/04/xmldsig-more#rsa-sha256", typeof(Security.Cryptography.RSAPKCS1SHA256SignatureDescription));
property.SetValue(null, data);
}
}
Dobrý den,
testoval jsem dále vaší aplikaci a řešil problém ohledně přidání podpory RSA-SHA256 do net framework 3.5 a nižší. Vzhledem k tomu, že není dostupná nebo tedy že neexistuje metoda AddAlgorithm pokusil jsem se přidat podpis přímo do interního field v CryptoConfig. pomocí níže uvedeného postupu. Dle mého porovnání obou případů se zdá že vše funguje stejně a není tudíž nutné používat uvedenou knihovnu, což je poměrně složité...
Možná že mne něco uniká a tím pádem to nebude fungovat, pokud by jste mne mohl poslat váš názor budu rád.
Děkuji