aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorlloyd <[email protected]>2010-06-28 19:54:46 +0000
committerlloyd <[email protected]>2010-06-28 19:54:46 +0000
commitbe41b79db735f10d09f5f73e4c2d438cee2d4ab7 (patch)
treecfdbaf5dbc183587331cc886d30640a050e76fdd /src
parent78465d7229c14478b81ecf56fad69a3b598a7415 (diff)
Give all Filter objects a method for querying their name
Diffstat (limited to 'src')
-rw-r--r--src/cms/cms_algo.cpp2
-rw-r--r--src/filters/base64/base64.h4
-rw-r--r--src/filters/basefilt.cpp10
-rw-r--r--src/filters/basefilt.h6
-rw-r--r--src/filters/buf_filt.h5
-rw-r--r--src/filters/bzip2/bzip2.h4
-rw-r--r--src/filters/filter.h4
-rw-r--r--src/filters/filters.h6
-rw-r--r--src/filters/hex/hex.h4
-rw-r--r--src/filters/pipe.cpp2
-rw-r--r--src/filters/secqueue.h2
-rw-r--r--src/filters/zlib/zlib.h4
-rw-r--r--src/pbe/pbes1/pbes1.cpp6
-rw-r--r--src/pbe/pbes1/pbes1.h2
-rw-r--r--src/pbe/pbes2/pbes2.cpp6
-rw-r--r--src/pbe/pbes2/pbes2.h2
16 files changed, 64 insertions, 5 deletions
diff --git a/src/cms/cms_algo.cpp b/src/cms/cms_algo.cpp
index 748aa73da..686a79b4e 100644
--- a/src/cms/cms_algo.cpp
+++ b/src/cms/cms_algo.cpp
@@ -31,6 +31,8 @@ SecureVector<byte> do_rfc3217_wrap(RandomNumberGenerator& rng,
class Flip_Bytes : public Filter
{
public:
+ std::string name() const { return "Fip_Bytes"; }
+
void write(const byte data[], u32bit length)
{
buf.append(data, length);
diff --git a/src/filters/base64/base64.h b/src/filters/base64/base64.h
index aca02da14..0f35859cc 100644
--- a/src/filters/base64/base64.h
+++ b/src/filters/base64/base64.h
@@ -20,6 +20,8 @@ class BOTAN_DLL Base64_Encoder : public Filter
public:
static void encode(const byte in[3], byte out[4]);
+ std::string name() const { return "Base64_Encoder"; }
+
/**
* Input a part of a message to the encoder.
* @param input the message to input as a byte array
@@ -61,6 +63,8 @@ class BOTAN_DLL Base64_Decoder : public Filter
static bool is_valid(byte);
+ std::string name() const { return "Base64_Decoder"; }
+
/**
* Input a part of a message to the decoder.
* @param input the message to input as a byte array
diff --git a/src/filters/basefilt.cpp b/src/filters/basefilt.cpp
index 124c0a887..008d04b02 100644
--- a/src/filters/basefilt.cpp
+++ b/src/filters/basefilt.cpp
@@ -39,6 +39,11 @@ Chain::Chain(Filter* filters[], u32bit count)
}
}
+std::string Chain::name() const
+ {
+ return "Chain";
+ }
+
/*
* Fork Constructor
*/
@@ -56,4 +61,9 @@ Fork::Fork(Filter* filters[], u32bit count)
set_next(filters, count);
}
+std::string Fork::name() const
+ {
+ return "Fork";
+ }
+
}
diff --git a/src/filters/basefilt.h b/src/filters/basefilt.h
index 81e897bc4..a5c3dcd41 100644
--- a/src/filters/basefilt.h
+++ b/src/filters/basefilt.h
@@ -18,6 +18,8 @@ namespace Botan {
struct BOTAN_DLL BitBucket : public Filter
{
void write(const byte[], u32bit) {}
+
+ std::string name() const { return "BitBucket"; }
};
/**
@@ -31,6 +33,8 @@ class BOTAN_DLL Chain : public Fanout_Filter
public:
void write(const byte input[], u32bit length) { send(input, length); }
+ std::string name() const;
+
/**
* Construct a chain of up to four filters. The filters are set
* up in the same order as the arguments.
@@ -56,6 +60,8 @@ class BOTAN_DLL Fork : public Fanout_Filter
void write(const byte input[], u32bit length) { send(input, length); }
void set_port(u32bit n) { Fanout_Filter::set_port(n); }
+ std::string name() const;
+
/**
* Construct a Fork filter with up to four forks.
*/
diff --git a/src/filters/buf_filt.h b/src/filters/buf_filt.h
index 3acf1f809..1f5d7dae8 100644
--- a/src/filters/buf_filt.h
+++ b/src/filters/buf_filt.h
@@ -26,11 +26,6 @@ class BOTAN_DLL Buffered_Filter
virtual ~Buffered_Filter() {}
protected:
- /**
- * @return name of this filter object
- */
- virtual std::string name() const = 0;
-
virtual void buffered_block(const byte input[], u32bit length) = 0;
virtual void buffered_final(const byte input[], u32bit length) = 0;
diff --git a/src/filters/bzip2/bzip2.h b/src/filters/bzip2/bzip2.h
index 3b40dbe40..aacec8fa9 100644
--- a/src/filters/bzip2/bzip2.h
+++ b/src/filters/bzip2/bzip2.h
@@ -19,6 +19,8 @@ namespace Botan {
class BOTAN_DLL Bzip_Compression : public Filter
{
public:
+ std::string name() const { return "Bzip_Compression"; }
+
void write(const byte input[], u32bit length);
void start_msg();
void end_msg();
@@ -41,6 +43,8 @@ class BOTAN_DLL Bzip_Compression : public Filter
class BOTAN_DLL Bzip_Decompression : public Filter
{
public:
+ std::string name() const { return "Bzip_Decompression"; }
+
void write(const byte input[], u32bit length);
void start_msg();
void end_msg();
diff --git a/src/filters/filter.h b/src/filters/filter.h
index 62c67b922..d5aa9725b 100644
--- a/src/filters/filter.h
+++ b/src/filters/filter.h
@@ -19,6 +19,10 @@ namespace Botan {
class BOTAN_DLL Filter
{
public:
+ /**
+ * @return descriptive name for this filter
+ */
+ virtual std::string name() const = 0;
/**
* Write a portion of a message to this filter.
diff --git a/src/filters/filters.h b/src/filters/filters.h
index 5953518d3..e2c7cb5ec 100644
--- a/src/filters/filters.h
+++ b/src/filters/filters.h
@@ -37,6 +37,8 @@ class BOTAN_DLL StreamCipher_Filter : public Keyed_Filter
{
public:
+ std::string name() const { return cipher->name(); }
+
/**
* Write input data
* @param input data
@@ -108,6 +110,8 @@ class BOTAN_DLL Hash_Filter : public Filter
void write(const byte input[], u32bit len) { hash->update(input, len); }
void end_msg();
+ std::string name() const { return hash->name(); }
+
/**
* Construct a hash filter.
* @param hash_fun the hash function to use
@@ -144,6 +148,8 @@ class BOTAN_DLL MAC_Filter : public Keyed_Filter
void write(const byte input[], u32bit len) { mac->update(input, len); }
void end_msg();
+ std::string name() const { return mac->name(); }
+
/**
* Set the key of this filter.
* @param key the key to set
diff --git a/src/filters/hex/hex.h b/src/filters/hex/hex.h
index b03b933bc..6698a61be 100644
--- a/src/filters/hex/hex.h
+++ b/src/filters/hex/hex.h
@@ -28,6 +28,8 @@ class BOTAN_DLL Hex_Encoder : public Filter
*/
static void encode(byte in, byte out[2], Case the_case = Uppercase);
+ std::string name() const { return "Hex_Encoder"; }
+
void write(const byte in[], u32bit length);
void end_msg();
@@ -77,6 +79,8 @@ class BOTAN_DLL Hex_Decoder : public Filter
*/
static bool is_valid(byte c);
+ std::string name() const { return "Hex_Decoder"; }
+
void write(const byte[], u32bit);
void end_msg();
diff --git a/src/filters/pipe.cpp b/src/filters/pipe.cpp
index 77e4ae283..22718cd8c 100644
--- a/src/filters/pipe.cpp
+++ b/src/filters/pipe.cpp
@@ -22,6 +22,8 @@ class Null_Filter : public Filter
public:
void write(const byte input[], u32bit length)
{ send(input, length); }
+
+ std::string name() const { return "Null"; }
};
}
diff --git a/src/filters/secqueue.h b/src/filters/secqueue.h
index 3cb486024..483a31d60 100644
--- a/src/filters/secqueue.h
+++ b/src/filters/secqueue.h
@@ -19,6 +19,8 @@ namespace Botan {
class BOTAN_DLL SecureQueue : public Fanout_Filter, public DataSource
{
public:
+ std::string name() const { return "Queue"; }
+
void write(const byte[], u32bit);
u32bit read(byte[], u32bit);
diff --git a/src/filters/zlib/zlib.h b/src/filters/zlib/zlib.h
index 2aa83aadf..e1645e1ee 100644
--- a/src/filters/zlib/zlib.h
+++ b/src/filters/zlib/zlib.h
@@ -19,6 +19,8 @@ namespace Botan {
class BOTAN_DLL Zlib_Compression : public Filter
{
public:
+ std::string name() const { return "Zlib_Compression"; }
+
void write(const byte input[], u32bit length);
void start_msg();
void end_msg();
@@ -48,6 +50,8 @@ class BOTAN_DLL Zlib_Compression : public Filter
class BOTAN_DLL Zlib_Decompression : public Filter
{
public:
+ std::string name() const { return "Zlib_Decompression"; }
+
void write(const byte input[], u32bit length);
void start_msg();
void end_msg();
diff --git a/src/pbe/pbes1/pbes1.cpp b/src/pbe/pbes1/pbes1.cpp
index a3e08d679..6e4c3f54d 100644
--- a/src/pbe/pbes1/pbes1.cpp
+++ b/src/pbe/pbes1/pbes1.cpp
@@ -153,6 +153,12 @@ OID PBE_PKCS5v15::get_oid() const
throw Internal_Error("PBE-PKCS5 v1.5: get_oid() has run out of options");
}
+std::string PBE_PKCS5v15::name() const
+ {
+ return "PBE-PKCS5v15(" + block_cipher->name() + "," +
+ hash_function->name() + ")";
+ }
+
/*
* PKCS#5 v1.5 PBE Constructor
*/
diff --git a/src/pbe/pbes1/pbes1.h b/src/pbe/pbes1/pbes1.h
index d50c01f53..dcce38e24 100644
--- a/src/pbe/pbes1/pbes1.h
+++ b/src/pbe/pbes1/pbes1.h
@@ -21,6 +21,8 @@ namespace Botan {
class BOTAN_DLL PBE_PKCS5v15 : public PBE
{
public:
+ std::string name() const;
+
void write(const byte[], u32bit);
void start_msg();
void end_msg();
diff --git a/src/pbe/pbes2/pbes2.cpp b/src/pbe/pbes2/pbes2.cpp
index 1ac16af8d..5b77acff5 100644
--- a/src/pbe/pbes2/pbes2.cpp
+++ b/src/pbe/pbes2/pbes2.cpp
@@ -207,6 +207,12 @@ bool PBE_PKCS5v20::known_cipher(const std::string& algo)
return false;
}
+std::string PBE_PKCS5v20::name() const
+ {
+ return "PBE-PKCS5v20(" + block_cipher->name() + "," +
+ hash_function->name() + ")";
+ }
+
/*
* PKCS#5 v2.0 PBE Constructor
*/
diff --git a/src/pbe/pbes2/pbes2.h b/src/pbe/pbes2/pbes2.h
index f24d572d0..4a021840a 100644
--- a/src/pbe/pbes2/pbes2.h
+++ b/src/pbe/pbes2/pbes2.h
@@ -27,6 +27,8 @@ class BOTAN_DLL PBE_PKCS5v20 : public PBE
*/
static bool known_cipher(const std::string& cipher);
+ std::string name() const;
+
void write(const byte[], u32bit);
void start_msg();
void end_msg();