Browse Source

add rsa_get_size()

Steffen Jaeckel 12 years ago
parent
commit
73c201da1f
2 changed files with 44 additions and 0 deletions
  1. 2 0
      src/headers/tomcrypt_pk.h
  2. 42 0
      src/pk/rsa/rsa_get_size.c

+ 2 - 0
src/headers/tomcrypt_pk.h

@@ -51,6 +51,8 @@ typedef struct Rsa_key {
 
 
 int rsa_make_key(prng_state *prng, int wprng, int size, long e, rsa_key *key);
 int rsa_make_key(prng_state *prng, int wprng, int size, long e, rsa_key *key);
 
 
+int rsa_get_size(rsa_key *key);
+
 int rsa_exptmod(const unsigned char *in,   unsigned long inlen,
 int rsa_exptmod(const unsigned char *in,   unsigned long inlen,
                       unsigned char *out,  unsigned long *outlen, int which,
                       unsigned char *out,  unsigned long *outlen, int which,
                       rsa_key *key);
                       rsa_key *key);

+ 42 - 0
src/pk/rsa/rsa_get_size.c

@@ -0,0 +1,42 @@
+/* LibTomCrypt, modular cryptographic library -- Tom St Denis
+ *
+ * LibTomCrypt is a library that provides various cryptographic
+ * algorithms in a highly modular and flexible manner.
+ *
+ * The library is free for all purposes without any express
+ * guarantee it works.
+ *
+ * http://libtom.org
+ */
+#include "tomcrypt.h"
+
+/**
+  @file rsa_get_size.c
+  Retrieve the size of an RSA key, Steffen Jaeckel.
+*/
+
+#ifdef LTC_MRSA
+
+/**
+  Retrieve the size in bytes of an RSA key.
+  @param key      The RSA key
+  @return The size in bytes of the RSA key or INT_MAX on error.
+*/
+int rsa_get_size(rsa_key *key)
+{
+  int ret = INT_MAX;
+  LTC_ARGCHKVD(key != NULL);
+
+  if (key)
+  {
+    ret = mp_unsigned_bin_size(key->N);
+  } /* if */
+
+  return ret;
+}
+
+#endif
+
+/* $Source$ */
+/* $Revision$ */
+/* $Date$ */