title: High performance RSA implementation for C# or C
body: <p>I have an webservice that performs many RSA-signature operations. I use the CryptograhyProvider from .net. This uses the unmanaged CyptoAPI from Windows.</p>
  
  <p>I often have this error:</p>
  
  <blockquote>
    <p>System.Security.Cryptography.CryptographicException: Der RPC-Server
    ist für diesen Vorgang zu stark ausgelastet.  [=The rpc server is too
    busy to complete the transaction]</p>
    
    <p>bei
    System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32
    hr)    bei
    System.Security.Cryptography.Utils._ImportKey(SafeProvHandle hCSP,
    Int32 keyNumber, CspProviderFlags flags, Object cspObject,
    SafeKeyHandle&amp; hKey)    bei
    System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters(RSAParameters
    parameters)</p>
  </blockquote>
  
  <p>Instead of trying to fix this, I'd rather replace my RSA-signing operation with an DLLImport to a high performance RSA C implementation.</p>
  
  <p>Does someone know one or can recommend one? </p>
  
  <p>Is OpenSSL faster than MS CryptoApi?
  I also suspect that loading the key might cause serious overhead.</p>
  
  <p>Thanks!</p>