]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
auth: make CryptoHandler implementations totally private
authorSage Weil <sage@redhat.com>
Mon, 26 Jan 2015 23:49:10 +0000 (15:49 -0800)
committerJosh Durgin <jdurgin@redhat.com>
Fri, 8 Jan 2016 21:29:09 +0000 (13:29 -0800)
There is no need to expose these implementations outside Crypto.cc.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit ad5a1549f401af3eae38f5c4de24e7b952e40f7f)

src/auth/Crypto.cc
src/auth/Crypto.h
src/common/ceph_context.cc
src/common/ceph_context.h

index e401c9605b18b3a1f965285b4533d6e073e94a50..f7ec93a2c93a52847f4107763e32e74748e4912f 100644 (file)
@@ -64,6 +64,21 @@ uint64_t get_random(uint64_t min_val, uint64_t max_val)
 
 // ---------------------------------------------------
 
+class CryptoNone : public CryptoHandler {
+public:
+  CryptoNone() { }
+  ~CryptoNone() {}
+  int get_type() const {
+    return CEPH_CRYPTO_NONE;
+  }
+  int create(bufferptr& secret);
+  int validate_secret(bufferptr& secret);
+  void encrypt(const bufferptr& secret, const bufferlist& in,
+             bufferlist& out, std::string &error) const;
+  void decrypt(const bufferptr& secret, const bufferlist& in,
+             bufferlist& out, std::string &error) const;
+};
+
 int CryptoNone::create(bufferptr& secret)
 {
   return 0;
@@ -88,6 +103,23 @@ void CryptoNone::decrypt(const bufferptr& secret, const bufferlist& in,
 
 
 // ---------------------------------------------------
+
+class CryptoAES : public CryptoHandler {
+public:
+  CryptoAES() { }
+  ~CryptoAES() {}
+  int get_type() const {
+    return CEPH_CRYPTO_AES;
+  }
+  int create(bufferptr& secret);
+  int validate_secret(bufferptr& secret);
+  void encrypt(const bufferptr& secret, const bufferlist& in,
+              bufferlist& out, std::string &error) const;
+  void decrypt(const bufferptr& secret, const bufferlist& in,
+             bufferlist& out, std::string &error) const;
+};
+
+
 #ifdef USE_CRYPTOPP
 # define AES_KEY_LEN     ((size_t)CryptoPP::AES::DEFAULT_KEYLENGTH)
 # define AES_BLOCK_LEN   ((size_t)CryptoPP::AES::BLOCKSIZE)
@@ -396,3 +428,18 @@ void CryptoKey::encode_plaintext(bufferlist &bl)
 {
   bl.append(encode_base64());
 }
+
+
+// ------------------
+
+CryptoHandler *CryptoHandler::create(int type)
+{
+  switch (type) {
+  case CEPH_CRYPTO_NONE:
+    return new CryptoNone;
+  case CEPH_CRYPTO_AES:
+    return new CryptoAES;
+  default:
+    return NULL;
+  }
+}
index c8112220aa6a32b28fec602f2c8e431307fdf9e5..1356b61f6c1770b74ddb6583329443982f499ed2 100644 (file)
@@ -124,39 +124,11 @@ public:
                      bufferlist& out, std::string &error) const = 0;
   virtual void decrypt(const bufferptr& secret, const bufferlist& in,
                      bufferlist& out, std::string &error) const = 0;
+
+  static CryptoHandler *create(int type);
 };
 
 extern int get_random_bytes(char *buf, int len);
 extern uint64_t get_random(uint64_t min_val, uint64_t max_val);
 
-class CryptoNone : public CryptoHandler {
-public:
-  CryptoNone() { }
-  ~CryptoNone() {}
-  int get_type() const {
-    return CEPH_CRYPTO_NONE;
-  }
-  int create(bufferptr& secret);
-  int validate_secret(bufferptr& secret);
-  void encrypt(const bufferptr& secret, const bufferlist& in,
-             bufferlist& out, std::string &error) const;
-  void decrypt(const bufferptr& secret, const bufferlist& in,
-             bufferlist& out, std::string &error) const;
-};
-
-class CryptoAES : public CryptoHandler {
-public:
-  CryptoAES() { }
-  ~CryptoAES() {}
-  int get_type() const {
-    return CEPH_CRYPTO_AES;
-  }
-  int create(bufferptr& secret);
-  int validate_secret(bufferptr& secret);
-  void encrypt(const bufferptr& secret, const bufferlist& in,
-              bufferlist& out, std::string &error) const;
-  void decrypt(const bufferptr& secret, const bufferlist& in, 
-             bufferlist& out, std::string &error) const;
-};
-
 #endif
index 50346edf2ace6a227b6f32fbf241a517db4d814c..877dd539284ca0d86ea6c5f07cfe66060232d020 100644 (file)
@@ -448,8 +448,8 @@ CephContext::CephContext(uint32_t module_type_)
   _admin_socket->register_command("log dump", "log dump", _admin_hook, "dump recent log entries to log file");
   _admin_socket->register_command("log reopen", "log reopen", _admin_hook, "reopen log file");
 
-  _crypto_none = new CryptoNone;
-  _crypto_aes = new CryptoAES;
+  _crypto_none = CryptoHandler::create(CEPH_CRYPTO_NONE);
+  _crypto_aes = CryptoHandler::create(CEPH_CRYPTO_AES);
 }
 
 CephContext::~CephContext()
index a9ffde04eb35b6eaf3481dc5e4624cbb37a0432d..a77dfae6293e643f2e78e6d2ac255a11a3bdd26d 100644 (file)
@@ -32,8 +32,6 @@ class md_config_obs_t;
 struct md_config_t;
 class CephContextHook;
 class CephContextObs;
-class CryptoNone;
-class CryptoAES;
 class CryptoHandler;
 
 namespace ceph {
@@ -170,8 +168,8 @@ private:
   std::map<std::string, AssociatedSingletonObject*> _associated_objs;
 
   // crypto
-  CryptoNone *_crypto_none;
-  CryptoAES *_crypto_aes;
+  CryptoHandler *_crypto_none;
+  CryptoHandler *_crypto_aes;
 
   // experimental
   CephContextObs *_cct_obs;