Spolupráce OpenSSL a RSACryptoServiceProvider

Pokud bychom chtěli šifrovat RSA mezi OpenSSL (např. v PHP) a .NETovou platformou pomocí třídy RSACryptoServiceProvider-u narazíme na jeden velký problém. OpenSSL a RSACryptoServiceProvider používají jiné formáty klíčů.

Naštěstí existuje řešení:

  1. Stáhnout OpenSSL - http://www.openssl.org/
  2. Vygenerovat soukromí klíč (pro demostraci s výchozími parametry):
    openssl genrsa -out private.pem
  3. Vygenerovat veřejný klíč:
    openssl rsa -pubout -in private.pem -out public.pem
  4. Stáhnout utilitu OpenSSLKey -  http://www.jensign.com/opensslkey/, která dokáže převést klíč z formátu generovaného OpenSSL do .NETového.

    Bohužel se mi touto utilitou podařilo převést pouze soukromý klíč. Konverze veřejného klíče způsobila chybu v programu. Naštěstí to ale u veřejného klíče nevadí.
  5. Převedený formát klíče se lze načíst metodou FromXmlString, kterou má RSACryptoServiceProvider
  6. Pro získání veřejného klíče v XML formátu je nutné zavolat metodu ToXmlString(false)

Tímto postupem jsme získali soukromý a veřejný klíč pro OpenSSL, tak i pro RSACryptoServiceProvider.

Detaily popisuje článek na http://www.jensign.com/opensslkey/, ve kterém lze stáhnout utilitu OpenSSLKey včetně zdrojového kódu v C#.

Zveřejněno 09 April 10 04:15 by topas
Vedeno pod: , ,

Upozornění na nové komentáře

Pokud chčeš dostávat upozornění emailem na změny u toho příspěvku,tak se zaregistruj zde.zde

Odebírat komentáře k tomuto příspěvku pomocí RSS

Komentář

# Twitter Trackbacks for Tom???? Pastorek : Spolupr??ce OpenSSL a RSACryptoServiceProvider [vyvojar.cz] on Topsy.com said on April 12, 2010 12:34 AM:

PingBack from http://topsy.com/trackback?utm_source=pingback&utm_campaign=L1&url=http://blog.vyvojar.cz/topas/archive/2010/04/09/spoluprace-openssl-a-rsacryptoserviceprovider.aspx

Vytvoření nového komentáře

(povinný) 
(nepovinný)
(povinný) 
Opiš čísla, která vidíš na obrázku: