aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorlloyd <[email protected]>2008-09-28 21:16:31 +0000
committerlloyd <[email protected]>2008-09-28 21:16:31 +0000
commit9ebc60c266c37722e83ca7482f1516fc3e8bf6d3 (patch)
tree8328dfeaa564a552e00a5d07234e37d0e303f157 /src
parent98ef58194ce6b954b44acfa218c1aa49c6234aad (diff)
Modularize IF family PK algorithms (integer factorization; RSA and RW base
class). Add many missing modinfo.txts that I had not checked in. Oops.
Diffstat (limited to 'src')
-rw-r--r--src/cms/modinfo.txt16
-rw-r--r--src/hash/mdx_hash/modinfo.txt10
-rw-r--r--src/hash/sha1_amd64/modinfo.txt27
-rw-r--r--src/kdf/mgf1/modinfo.txt10
-rw-r--r--src/pk/dh/modinfo.txt10
-rw-r--r--src/pk/dsa/modinfo.txt10
-rw-r--r--src/pk/elgamal/modinfo.txt10
-rw-r--r--src/pk/if_algo/if_algo.cpp (renamed from src/if_algo.cpp)0
-rw-r--r--src/pk/if_algo/if_algo.h58
-rw-r--r--src/pk/if_algo/modinfo.txt10
-rw-r--r--src/pk/nr/modinfo.txt10
-rw-r--r--src/pk/rsa/modinfo.txt14
-rw-r--r--src/pk/rw/modinfo.txt14
13 files changed, 199 insertions, 0 deletions
diff --git a/src/cms/modinfo.txt b/src/cms/modinfo.txt
new file mode 100644
index 000000000..eb5b3e624
--- /dev/null
+++ b/src/cms/modinfo.txt
@@ -0,0 +1,16 @@
+realname "CMS"
+
+define CMS
+
+load_on request
+
+<add>
+cms_algo.cpp
+cms_comp.cpp
+cms_dalg.cpp
+cms_dec.cpp
+cms_dec.h
+cms_ealg.cpp
+cms_enc.cpp
+cms_enc.h
+</add>
diff --git a/src/hash/mdx_hash/modinfo.txt b/src/hash/mdx_hash/modinfo.txt
new file mode 100644
index 000000000..106a99303
--- /dev/null
+++ b/src/hash/mdx_hash/modinfo.txt
@@ -0,0 +1,10 @@
+realname "MDx Hash Base"
+
+define MDX_HASH_FUNCTION
+
+load_on auto
+
+<add>
+mdx_hash.cpp
+mdx_hash.h
+</add>
diff --git a/src/hash/sha1_amd64/modinfo.txt b/src/hash/sha1_amd64/modinfo.txt
new file mode 100644
index 000000000..405b78343
--- /dev/null
+++ b/src/hash/sha1_amd64/modinfo.txt
@@ -0,0 +1,27 @@
+realname "SHA-1 (x86-64 assembler)"
+
+load_on request
+
+<add>
+sha160.cpp
+asm_macr.h
+sha1_asm.S
+</add>
+
+<arch>
+amd64
+</arch>
+
+<cc>
+gcc
+icc
+</cc>
+
+# ELF systems
+<os>
+linux
+freebsd
+netbsd
+openbsd
+solaris
+</os>
diff --git a/src/kdf/mgf1/modinfo.txt b/src/kdf/mgf1/modinfo.txt
new file mode 100644
index 000000000..03abec0ac
--- /dev/null
+++ b/src/kdf/mgf1/modinfo.txt
@@ -0,0 +1,10 @@
+realname "MGF1"
+
+define MGF1
+
+load_on auto
+
+<add>
+mgf1.h
+mgf1.cpp
+</add>
diff --git a/src/pk/dh/modinfo.txt b/src/pk/dh/modinfo.txt
new file mode 100644
index 000000000..e3bbe3f32
--- /dev/null
+++ b/src/pk/dh/modinfo.txt
@@ -0,0 +1,10 @@
+realname "DH"
+
+define DH
+
+load_on auto
+
+<add>
+dh.cpp
+dh.h
+</add>
diff --git a/src/pk/dsa/modinfo.txt b/src/pk/dsa/modinfo.txt
new file mode 100644
index 000000000..77bb48396
--- /dev/null
+++ b/src/pk/dsa/modinfo.txt
@@ -0,0 +1,10 @@
+realname "DSA"
+
+define DSA
+
+load_on auto
+
+<add>
+dsa.cpp
+dsa.h
+</add>
diff --git a/src/pk/elgamal/modinfo.txt b/src/pk/elgamal/modinfo.txt
new file mode 100644
index 000000000..df38d48d6
--- /dev/null
+++ b/src/pk/elgamal/modinfo.txt
@@ -0,0 +1,10 @@
+realname "ElGamal"
+
+define ELGAMAL
+
+load_on auto
+
+<add>
+elgamal.cpp
+elgamal.h
+</add>
diff --git a/src/if_algo.cpp b/src/pk/if_algo/if_algo.cpp
index 929f488fd..929f488fd 100644
--- a/src/if_algo.cpp
+++ b/src/pk/if_algo/if_algo.cpp
diff --git a/src/pk/if_algo/if_algo.h b/src/pk/if_algo/if_algo.h
new file mode 100644
index 000000000..c5da4073e
--- /dev/null
+++ b/src/pk/if_algo/if_algo.h
@@ -0,0 +1,58 @@
+/*************************************************
+* IF Scheme Header File *
+* (C) 1999-2007 Jack Lloyd *
+*************************************************/
+
+#ifndef BOTAN_IF_ALGO_H__
+#define BOTAN_IF_ALGO_H__
+
+#include <botan/x509_key.h>
+#include <botan/pkcs8.h>
+#include <botan/pk_core.h>
+
+namespace Botan {
+
+/*************************************************
+* IF Public Key *
+*************************************************/
+class BOTAN_DLL IF_Scheme_PublicKey : public virtual Public_Key
+ {
+ public:
+ bool check_key(RandomNumberGenerator& rng, bool) const;
+
+ const BigInt& get_n() const { return n; }
+ const BigInt& get_e() const { return e; }
+
+ u32bit max_input_bits() const { return (n.bits() - 1); }
+
+ X509_Encoder* x509_encoder() const;
+ X509_Decoder* x509_decoder();
+ protected:
+ virtual void X509_load_hook();
+ BigInt n, e;
+ IF_Core core;
+ };
+
+/*************************************************
+* IF Private Key *
+*************************************************/
+class BOTAN_DLL IF_Scheme_PrivateKey : public virtual IF_Scheme_PublicKey,
+ public virtual Private_Key
+ {
+ public:
+ bool check_key(RandomNumberGenerator& rng, bool) const;
+
+ const BigInt& get_p() const { return p; }
+ const BigInt& get_q() const { return q; }
+ const BigInt& get_d() const { return d; }
+
+ PKCS8_Encoder* pkcs8_encoder() const;
+ PKCS8_Decoder* pkcs8_decoder(RandomNumberGenerator&);
+ protected:
+ virtual void PKCS8_load_hook(RandomNumberGenerator&, bool = false);
+ BigInt d, p, q, d1, d2, c;
+ };
+
+}
+
+#endif
diff --git a/src/pk/if_algo/modinfo.txt b/src/pk/if_algo/modinfo.txt
new file mode 100644
index 000000000..f4ddd565f
--- /dev/null
+++ b/src/pk/if_algo/modinfo.txt
@@ -0,0 +1,10 @@
+realname "Integer Factorization Algorithms"
+
+define IF_PUBLIC_KEY_FAMILY
+
+load_on auto
+
+<add>
+if_algo.cpp
+if_algo.h
+</add>
diff --git a/src/pk/nr/modinfo.txt b/src/pk/nr/modinfo.txt
new file mode 100644
index 000000000..4cb1b1bf5
--- /dev/null
+++ b/src/pk/nr/modinfo.txt
@@ -0,0 +1,10 @@
+realname "Nyberg-Rueppel"
+
+define NR
+
+load_on auto
+
+<add>
+nr.cpp
+nr.h
+</add>
diff --git a/src/pk/rsa/modinfo.txt b/src/pk/rsa/modinfo.txt
new file mode 100644
index 000000000..8125d7efb
--- /dev/null
+++ b/src/pk/rsa/modinfo.txt
@@ -0,0 +1,14 @@
+realname "RSA"
+
+define RSA
+
+load_on auto
+
+<add>
+rsa.cpp
+rsa.h
+</add>
+
+<requires>
+if_algo
+</requires>
diff --git a/src/pk/rw/modinfo.txt b/src/pk/rw/modinfo.txt
new file mode 100644
index 000000000..dee83c95d
--- /dev/null
+++ b/src/pk/rw/modinfo.txt
@@ -0,0 +1,14 @@
+realname "Rabin-Williams"
+
+define RW
+
+load_on auto
+
+<add>
+rw.cpp
+rw.h
+</add>
+
+<requires>
+if_algo
+</requires>