Initial code commit for Toolkit 1.1.
[silc.git] / lib / silccrypt / rsa.c
index c52f0b8a516ca25126a979cebb59fb8249bbd2ee..b905a794925d39706ab53893a6fa55d2c3bf17eb 100644 (file)
@@ -2,49 +2,49 @@
 
   rsa.c        RSA Public and Private key generation functions,
                RSA encrypt and decrypt functions.
+
   Author: Pekka Riikonen <priikone@silcnet.org>
+
   Copyright (C) 1997 - 2005 Pekka Riikonen
+
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; version 2 of the License.
+
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
+
   Created: Sat Mar  1 13:26:45 1997 pekka
+
   RSA public key cryptographic algorithm used in this distribution is:
+
        Key generation:
        p, q            primes
        p != q
        n = p * q       modulus
+
        Public key exponent:
        e   relatively prime to (p-1) * (q-1)
        Private key exponent:
        d = e ^ -1 mod lcm(((p-1) * (q-1)))
+
        Encryption:
        c = m ^ e mod n
        Decryption:
        m = c ^ d mod n
+
   Supports CRT (Chinese Remainder Theorem) for private key operations.
+
   The SSH's (Secure Shell), PGP's (Pretty Good Privacy) and RSAREF
   Toolkit were used as reference when coding this implementation. They
   all were a big help for me.
+
   I also suggest reading Bruce Schneier's; Applied Cryptography, Second
   Edition, John Wiley & Sons, Inc. 1996. This book deals about RSA and
   everything else too about cryptography.
+
 */
 /* $Id$ */
 
@@ -382,7 +382,7 @@ SILC_PKCS_API_SET_PRIVATE_KEY(rsa)
   silc_buffer_pull(&k, len);
 
   /* Get optimized d for CRT, if present. */
-  if (k.len > 4) {
+  if (silc_buffer_len(&k) > 4) {
     key->crt = TRUE;
     silc_mp_init(&key->dP);
     silc_mp_init(&key->dQ);