]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
auth: rename Keys* classes
authorSage Weil <sage@newdream.net>
Thu, 22 Oct 2009 19:13:28 +0000 (12:13 -0700)
committerSage Weil <sage@newdream.net>
Thu, 22 Oct 2009 19:13:28 +0000 (12:13 -0700)
21 files changed:
src/Makefile.am
src/auth/Auth.cc
src/auth/Auth.h
src/auth/AuthServiceHandler.cc
src/auth/KeyRing.cc
src/auth/KeyRing.h
src/auth/KeyServer.cc [new file with mode: 0644]
src/auth/KeyServer.h [new file with mode: 0644]
src/auth/KeysServer.cc [deleted file]
src/auth/KeysServer.h [deleted file]
src/authtool.cc
src/ceph.cc
src/include/AuthLibrary.h
src/librados.cc
src/mon/AuthMonitor.cc
src/mon/AuthMonitor.h
src/mon/MonClient.cc
src/mon/Monitor.cc
src/mon/Monitor.h
src/osd/OSD.cc
src/testkeys.cc

index 0d19680e0ef3ff5fd99f05abbeceaac0c819fe18..97838dfc61d1727df330ad3fb5b41f8b7a5d405f 100644 (file)
@@ -297,7 +297,7 @@ libcommon_files = \
        auth/Crypto.cc \
        auth/ExportControl.cc \
        auth/KeyRing.cc \
-       auth/KeysServer.cc \
+       auth/KeyServer.cc \
        common/LogClient.cc \
        msg/Message.cc \
        common/Logger.cc \
@@ -402,7 +402,7 @@ noinst_HEADERS = \
        auth/AuthProtocol.h\
        auth/AuthServiceHandler.h\
        auth/KeyRing.h\
-       auth/KeysServer.h\
+       auth/KeyServer.h\
        auth/Crypto.h\
        auth/ExportControl.h\
        ceph_ver.h \
index e72d56e168b778c21897278d943557d21634d488..e96ce62b767d68dff7d83896af4838087ce087dc 100644 (file)
@@ -1,6 +1,5 @@
 
 #include "Auth.h"
-#include "KeysServer.h"
 #include "common/Clock.h"
 
 #include "config.h"
@@ -207,7 +206,7 @@ bool AuthTicketManager::build_authorizer(uint32_t service_id, AuthAuthorizer& au
  *
  * {timestamp + 1}^session_key
  */
-bool verify_authorizer(KeysKeeper& keys, bufferlist::iterator& indata,
+bool verify_authorizer(KeyStore& keys, bufferlist::iterator& indata,
                        AuthServiceTicketInfo& ticket_info, bufferlist& reply_bl)
 {
   uint32_t service_id;
index 91bed03cd511198856aaeb6a2ddb1d4b6f223b9f..51a7092e5f058c964941bbc13e6d8d29a963b884 100644 (file)
@@ -297,7 +297,15 @@ struct RotatingSecrets {
 };
 WRITE_CLASS_ENCODER(RotatingSecrets);
 
-class KeysKeeper {
+
+
+/*
+ * Key management
+ */ 
+#define KEY_ROTATE_TIME 20
+#define KEY_ROTATE_NUM 3
+
+class KeyStore {
 public:
   virtual bool get_secret(EntityName& name, CryptoKey& secret) = 0;
   virtual bool get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret) = 0;
@@ -358,7 +366,7 @@ int encode_encrypt(const T& t, CryptoKey& key, bufferlist& out) {
  */
 extern bool verify_service_ticket_request(AuthServiceTicketRequest& ticket_req,
                                          bufferlist::iterator& indata);
-extern bool verify_authorizer(KeysKeeper& keys, bufferlist::iterator& indata,
+extern bool verify_authorizer(KeyStore& keys, bufferlist::iterator& indata,
                        AuthServiceTicketInfo& ticket_info, bufferlist& reply_bl);
 
 #endif
index f9816dfe98b8fea406595dceff1adf33ff0293b7..9f2e88531e21b3038bdce73eea2cd8136dc79539 100644 (file)
@@ -71,7 +71,7 @@ int CephAuthService_X::handle_request(bufferlist::iterator& indata, bufferlist&
 
       CryptoKey secret;
       dout(0) << "entity_name=" << entity_name.to_str() << dendl;
-      if (!mon->keys_server.get_secret(entity_name, secret)) {
+      if (!mon->key_server.get_secret(entity_name, secret)) {
         dout(0) << "couldn't find entity name: " << entity_name.to_str() << dendl;
        ret = -EPERM;
        break;
@@ -139,7 +139,7 @@ int CephAuthService_X::handle_cephx_protocol(bufferlist::iterator& indata, buffe
       SessionAuthInfo info;
 
       CryptoKey principal_secret;
-      if (mon->keys_server.get_secret(req.name, principal_secret) < 0) {
+      if (mon->key_server.get_secret(req.name, principal_secret) < 0) {
        ret = -EPERM;
        break;
       }
@@ -148,11 +148,11 @@ int CephAuthService_X::handle_cephx_protocol(bufferlist::iterator& indata, buffe
       info.ticket.addr = req.addr;
       info.ticket.init_timestamps(g_clock.now(), g_conf.auth_mon_ticket_ttl);
 
-      mon->keys_server.generate_secret(session_key);
+      mon->key_server.generate_secret(session_key);
 
       info.session_key = session_key;
       info.service_id = CEPHX_PRINCIPAL_AUTH;
-      if (!mon->keys_server.get_service_secret(CEPHX_PRINCIPAL_AUTH, info.service_secret, info.secret_id)) {
+      if (!mon->key_server.get_service_secret(CEPHX_PRINCIPAL_AUTH, info.service_secret, info.secret_id)) {
         dout(0) << "could not get service secret for auth subsystem" << dendl;
         ret = -EIO;
         break;
@@ -174,7 +174,7 @@ int CephAuthService_X::handle_cephx_protocol(bufferlist::iterator& indata, buffe
     {
       bufferlist tmp_bl;
       AuthServiceTicketInfo auth_ticket_info;
-      if (!verify_authorizer(mon->keys_server, indata, auth_ticket_info, tmp_bl)) {
+      if (!verify_authorizer(mon->key_server, indata, auth_ticket_info, tmp_bl)) {
         ret = -EPERM;
       }
 
@@ -189,7 +189,7 @@ int CephAuthService_X::handle_cephx_protocol(bufferlist::iterator& indata, buffe
       for (uint32_t service_id = 1; service_id != (CEPHX_PRINCIPAL_TYPE_MASK + 1); service_id <<= 1) {
         if (ticket_req.keys & service_id) {
           SessionAuthInfo info;
-          int r = mon->keys_server.build_session_auth_info(service_id, auth_ticket_info, info);
+          int r = mon->key_server.build_session_auth_info(service_id, auth_ticket_info, info);
           if (r < 0) {
             ret = r;
             break;
index 6090ea597278cc33e0d986153c2d0fb5173d1453..6b2615bf372352b512cb201726dee851d20d0b21 100644 (file)
@@ -19,7 +19,6 @@
 
 #include "Crypto.h"
 #include "auth/KeyRing.h"
-#include "auth/KeysServer.h"
 
 using namespace std;
 
index 38517b671cd80b9e0c7eefb6ba83175e26b7a054..879bd530a1c8ca47ebd74f7dbe92a827db5daa55 100644 (file)
@@ -25,7 +25,7 @@
   key of that service
 */
 
-class KeyRing : public KeysKeeper {
+class KeyRing : public KeyStore {
   CryptoKey master;
   RotatingSecrets rotating_secrets;
   Mutex lock;
diff --git a/src/auth/KeyServer.cc b/src/auth/KeyServer.cc
new file mode 100644 (file)
index 0000000..fa78310
--- /dev/null
@@ -0,0 +1,368 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2004-2009 Sage Weil <sage@newdream.net>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software 
+ * Foundation.  See file COPYING.
+ * 
+ */
+
+#include "config.h"
+
+#include "KeyServer.h"
+
+#include "Crypto.h"
+#include "common/Timer.h"
+#include "Auth.h"
+#include "AuthProtocol.h"
+
+#include <sstream>
+
+
+void RotatingSecrets::add(ExpiringCryptoKey& key)
+{
+  secrets[++max_ver] = key;
+
+  while (secrets.size() > KEY_ROTATE_NUM) {
+    map<uint64_t, ExpiringCryptoKey>::iterator iter = secrets.lower_bound(0);
+    secrets.erase(iter);
+  }
+}
+
+bool KeyServerData::get_service_secret(uint32_t service_id, ExpiringCryptoKey& secret, uint64_t& secret_id)
+{
+  map<uint32_t, RotatingSecrets>::iterator iter = rotating_secrets.find(service_id);
+  if (iter == rotating_secrets.end())
+    return false;
+
+  RotatingSecrets& secrets = iter->second;
+  map<uint64_t, ExpiringCryptoKey>::iterator riter = secrets.secrets.lower_bound(0);
+  if (secrets.secrets.size() > 1)
+    ++riter;
+
+
+  secret_id = riter->first;
+  secret = riter->second;
+
+  return true;
+}
+
+bool KeyServerData::get_service_secret(uint32_t service_id, CryptoKey& secret, uint64_t& secret_id)
+{
+  ExpiringCryptoKey e;
+
+  if (!get_service_secret(service_id, e, secret_id))
+    return false;
+
+  secret = e.key;
+
+  return true;
+}
+
+bool KeyServerData::get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret)
+{
+  map<uint32_t, RotatingSecrets>::iterator iter = rotating_secrets.find(service_id);
+  if (iter == rotating_secrets.end())
+    return false;
+
+  RotatingSecrets& secrets = iter->second;
+  map<uint64_t, ExpiringCryptoKey>::iterator riter = secrets.secrets.find(secret_id);
+
+  if (riter == secrets.secrets.end())
+    return false;
+
+  secret = riter->second.key;
+
+  return true;
+}
+
+bool KeyServerData::get_secret(EntityName& name, CryptoKey& secret)
+{
+  map<EntityName, EntityAuth>::iterator iter = secrets.find(name);
+  if (iter == secrets.end())
+    return false;
+
+  secret = iter->second.key;
+
+  return true;
+}
+
+bool KeyServerData::get_caps(EntityName& name, string& type, bufferlist& caps)
+{
+  dout(0) << "get_caps: name=" << name.to_str() << dendl;
+  map<EntityName, EntityAuth>::iterator iter = secrets.find(name);
+  if (iter == secrets.end())
+    return false;
+
+  dout(0) << "get_secret: num of caps=" << iter->second.caps.size() << dendl;
+  map<string, bufferlist>::iterator capsiter = iter->second.caps.find(type);
+  if (capsiter != iter->second.caps.end()) {
+    caps = capsiter->second;
+  }
+
+  return true;
+}
+
+KeyServer::KeyServer() : lock("KeyServer::lock")
+{
+}
+
+int KeyServer::start_server(bool init)
+{
+  Mutex::Locker l(lock);
+
+  if (init) {
+    _generate_all_rotating_secrets(init);
+  }
+  return 0;
+}
+
+void KeyServer::_generate_all_rotating_secrets(bool init)
+{
+  data.rotating_ver++;
+  data.next_rotating_time = g_clock.now();
+  data.next_rotating_time += KEY_ROTATE_TIME;
+  dout(0) << "generate_all_rotating_secrets()" << dendl;
+
+  int i = KEY_ROTATE_NUM;
+
+  if (init)
+    i = 1;
+
+  for (; i <= KEY_ROTATE_NUM; i++) {
+    _rotate_secret(CEPHX_PRINCIPAL_AUTH, i);
+    _rotate_secret(CEPHX_PRINCIPAL_MON, i);
+    _rotate_secret(CEPHX_PRINCIPAL_OSD, i);
+    _rotate_secret(CEPHX_PRINCIPAL_MDS, i);
+  }
+
+  dout(0) << "generated: " << dendl;
+  
+  map<uint32_t, RotatingSecrets>::iterator iter = data.rotating_secrets.begin();
+
+  for (; iter != data.rotating_secrets.end(); ++iter) {
+    dout(0) << "service id: " << iter->first << dendl;
+    RotatingSecrets& key = iter->second;
+
+    map<uint64_t, ExpiringCryptoKey>::iterator mapiter = key.secrets.begin();
+    for (; mapiter != key.secrets.end(); ++mapiter) {
+      dout(0) << "  id: " << mapiter->first << dendl;
+      bufferptr bp = mapiter->second.key.get_secret();
+      hexdump("    key", bp.c_str(), bp.length());
+      dout(0) << "    expiration: " << mapiter->second.expiration << dendl;
+    }
+  }
+}
+
+void KeyServer::_rotate_secret(uint32_t service_id, int factor)
+{
+  ExpiringCryptoKey ek;
+  generate_secret(ek.key);
+  ek.expiration = g_clock.now();
+  ek.expiration += (KEY_ROTATE_TIME * factor);
+  
+  data.add_rotating_secret(service_id, ek);
+}
+
+bool KeyServer::_check_rotate()
+{
+  if (g_clock.now() > data.next_rotating_time) {
+    dout(0) << "KeyServer::check_rotate: need to rotate keys" << dendl;
+    _generate_all_rotating_secrets(false);
+    return true;
+  }
+  return false;
+}
+
+bool KeyServer::get_secret(EntityName& name, CryptoKey& secret)
+{
+  Mutex::Locker l(lock);
+
+  return data.get_secret(name, secret);
+}
+
+bool KeyServer::get_caps(EntityName& name, string& type, bufferlist& caps)
+{
+  Mutex::Locker l(lock);
+
+  return data.get_caps(name, type, caps);
+}
+
+bool KeyServer::get_service_secret(uint32_t service_id, ExpiringCryptoKey& secret, uint64_t& secret_id)
+{
+  Mutex::Locker l(lock);
+
+  return data.get_service_secret(service_id, secret, secret_id);
+}
+
+bool KeyServer::get_service_secret(uint32_t service_id, CryptoKey& secret, uint64_t& secret_id)
+{
+  Mutex::Locker l(lock);
+
+  return data.get_service_secret(service_id, secret, secret_id);
+}
+
+bool KeyServer::get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret)
+{
+  Mutex::Locker l(lock);
+
+  return data.get_service_secret(service_id, secret_id, secret);
+}
+
+bool KeyServer::generate_secret(CryptoKey& secret)
+{
+  bufferptr bp;
+  CryptoHandler *crypto = ceph_crypto_mgr.get_crypto(CEPH_SECRET_AES);
+  if (!crypto)
+    return false;
+
+  if (crypto->create(bp) < 0)
+    return false;
+
+  secret.set_secret(CEPH_SECRET_AES, bp);
+
+  return true;
+}
+
+bool KeyServer::generate_secret(EntityName& name, CryptoKey& secret)
+{
+  if (!generate_secret(secret))
+    return false;
+
+  Mutex::Locker l(lock);
+
+  EntityAuth auth;
+  auth.key = secret;
+
+  data.add_auth(name, auth);
+
+  return true;
+}
+
+bool KeyServer::contains(EntityName& name)
+{
+  Mutex::Locker l(lock);
+
+  return data.contains(name);
+}
+
+void KeyServer::list_secrets(stringstream& ss)
+{
+  Mutex::Locker l(lock);
+
+  map<EntityName, EntityAuth>::iterator mapiter = data.secrets_begin();
+  if (mapiter != data.secrets_end()) {
+    ss << "installed auth entries: " << std::endl;      
+
+    while (mapiter != data.secrets_end()) {
+      const EntityName& name = mapiter->first;
+      ss << name.to_str() << std::endl;
+
+      map<string, bufferlist>::iterator capsiter = mapiter->second.caps.begin();
+      for (; capsiter != mapiter->second.caps.end(); ++capsiter) {
+        bufferlist::iterator dataiter = capsiter->second.begin();
+        string caps;
+        ::decode(caps, dataiter);
+       ss << "\tcaps: [" << capsiter->first << "] " << caps << std::endl;
+      }
+     
+      ++mapiter;
+    }
+  } else {
+    ss << "no installed auth entries!";
+  }
+}
+
+bool KeyServer::updated_rotating(bufferlist& rotating_bl, version_t& rotating_ver)
+{
+  Mutex::Locker l(lock);
+
+  _check_rotate(); 
+
+  if (data.rotating_ver <= rotating_ver)
+    return false;
+
+  ::encode(data.rotating_ver, rotating_bl);
+  ::encode(data.rotating_secrets, rotating_bl);
+
+  rotating_ver = data.rotating_ver;
+
+  return true;
+}
+
+void KeyServer::decode_rotating(bufferlist& rotating_bl)
+{
+  Mutex::Locker l(lock);
+
+  bufferlist::iterator iter = rotating_bl.begin();
+
+  ::decode(data.rotating_ver, iter);
+  ::decode(data.rotating_secrets, iter);
+}
+
+bool KeyServer::get_rotating_encrypted(EntityName& name, bufferlist& enc_bl)
+{
+  Mutex::Locker l(lock);
+
+  map<EntityName, EntityAuth>::iterator mapiter = data.find_name(name);
+  if (mapiter == data.secrets_end())
+    return false;
+
+  CryptoKey& specific_key = mapiter->second.key;
+
+  map<uint32_t, RotatingSecrets>::iterator rotate_iter = data.rotating_secrets.find(name.entity_type);
+  if (rotate_iter == data.rotating_secrets.end())
+    return false;
+
+  RotatingSecrets secrets = rotate_iter->second;
+
+  encode_encrypt(secrets, specific_key, enc_bl);
+
+  return true;
+}
+
+int KeyServer::_build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info)
+{
+  info.ticket.name = auth_ticket_info.ticket.name;
+  info.ticket.addr = auth_ticket_info.ticket.addr;
+  info.ticket.init_timestamps(g_clock.now(), g_conf.auth_service_ticket_ttl);
+
+  generate_secret(info.session_key);
+
+  info.service_id = service_id;
+
+  string s;
+  get_entity_type_str(service_id, s);
+
+  if (!data.get_caps(info.ticket.name, s, info.ticket.caps)) {
+    return -EINVAL;
+  }
+
+  return 0;
+}
+
+int KeyServer::build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info)
+{
+  if (get_service_secret(service_id, info.service_secret, info.secret_id) < 0) {
+    return -EPERM;
+  }
+
+  Mutex::Locker l(lock);
+
+  return _build_session_auth_info(service_id, auth_ticket_info, info);
+}
+
+int KeyServer::build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info,
+                                        CryptoKey& service_secret, uint64_t secret_id)
+{
+  info.service_secret = service_secret;
+  info.secret_id = secret_id;
+
+  return _build_session_auth_info(service_id, auth_ticket_info, info);
+}
+
diff --git a/src/auth/KeyServer.h b/src/auth/KeyServer.h
new file mode 100644 (file)
index 0000000..a03ebbb
--- /dev/null
@@ -0,0 +1,165 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2004-2009 Sage Weil <sage@newdream.net>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software 
+ * Foundation.  See file COPYING.
+ * 
+ */
+
+#ifndef __KEYSSERVER_H
+#define __KEYSSERVER_H
+
+#include "config.h"
+
+#include "Crypto.h"
+#include "common/Timer.h"
+#include "Auth.h"
+
+struct KeyServerData {
+  version_t version;
+  version_t rotating_ver;
+  utime_t next_rotating_time;
+
+  /* for each entity */
+  map<EntityName, EntityAuth> secrets;
+
+  /* for each service type */
+  map<uint32_t, RotatingSecrets> rotating_secrets;
+
+  KeyServerData() : version(0), rotating_ver(0) {}
+
+  void encode(bufferlist& bl) const {
+    ::encode(version, bl);
+    ::encode(rotating_ver, bl);
+    ::encode(next_rotating_time, bl);
+    ::encode(secrets, bl);
+    ::encode(rotating_secrets, bl);
+  }
+  void decode(bufferlist::iterator& bl) {
+    ::decode(version, bl);
+    ::decode(rotating_ver, bl);
+    ::decode(next_rotating_time, bl);
+    ::decode(secrets, bl);
+    ::decode(rotating_secrets, bl);
+  }
+
+  bool contains(EntityName& name) {
+    return (secrets.find(name) != secrets.end());
+  }
+
+  void add_auth(const EntityName& name, EntityAuth& auth) {
+    secrets[name] = auth;
+  }
+
+  void remove_secret(const EntityName& name) {
+    map<EntityName, EntityAuth>::iterator iter = secrets.find(name);
+    if (iter == secrets.end())
+      return;
+    secrets.erase(iter);
+  }
+
+  void add_rotating_secret(uint32_t service_id, ExpiringCryptoKey& key) {
+    rotating_secrets[service_id].add(key);
+  }
+
+  bool get_service_secret(uint32_t service_id, ExpiringCryptoKey& secret, uint64_t& secret_id);
+  bool get_service_secret(uint32_t service_id, CryptoKey& secret, uint64_t& secret_id);
+  bool get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret);
+  bool get_secret(EntityName& name, CryptoKey& secret);
+  bool get_caps(EntityName& name, string& type, bufferlist& caps);
+
+  map<EntityName, EntityAuth>::iterator secrets_begin() { return secrets.begin(); }
+  map<EntityName, EntityAuth>::iterator secrets_end() { return secrets.end(); }
+  map<EntityName, EntityAuth>::iterator find_name(EntityName& name) { return secrets.find(name); }
+};
+WRITE_CLASS_ENCODER(KeyServerData);
+
+class KeyServer : public KeyStore {
+  KeyServerData data;
+
+  Mutex lock;
+
+  void _rotate_secret(uint32_t service_id, int factor);
+  void _generate_all_rotating_secrets(bool init);
+  bool _check_rotate();
+  int _build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info);
+public:
+  KeyServer();
+
+  bool generate_secret(CryptoKey& secret);
+
+  bool get_secret(EntityName& name, CryptoKey& secret);
+  bool get_caps(EntityName& name, string& type, bufferlist& caps);
+  bool get_active_rotating_secret(EntityName& name, CryptoKey& secret);
+  int start_server(bool init);
+  void rotate_timeout(double timeout);
+
+  int build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info);
+  int build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info,
+                                        CryptoKey& service_secret, uint64_t secret_id);
+
+  /* get current secret for specific service type */
+  bool get_service_secret(uint32_t service_id, ExpiringCryptoKey& service_key, uint64_t& secret_id);
+  bool get_service_secret(uint32_t service_id, CryptoKey& service_key, uint64_t& secret_id);
+  bool get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret);
+
+  bool generate_secret(EntityName& name, CryptoKey& secret);
+
+  void encode(bufferlist& bl) const {
+    ::encode(data, bl);
+  }
+  void decode(bufferlist::iterator& bl) {
+    Mutex::Locker l(lock);
+    ::decode(data, bl);
+  }
+  bool contains(EntityName& name);
+  void list_secrets(stringstream& ss);
+  version_t get_ver() {
+    Mutex::Locker l(lock);
+    return data.version;    
+  }
+
+  void set_ver(version_t ver) {
+    Mutex::Locker l(lock);
+    data.version = ver;
+  }
+
+  void add_auth(const EntityName& name, EntityAuth& auth) {
+    Mutex::Locker l(lock);
+    data.add_auth(name, auth);
+  }
+
+  void remove_secret(const EntityName& name) {
+    Mutex::Locker l(lock);
+    data.remove_secret(name);
+  }
+
+  void add_rotating_secret(uint32_t service_id, ExpiringCryptoKey& key) {
+    Mutex::Locker l(lock);
+    data.add_rotating_secret(service_id, key);
+  }
+  void clone_to(KeyServerData& dst) {
+    Mutex::Locker l(lock);
+    dst = data;
+  }
+
+  bool updated_rotating(bufferlist& rotating_bl, version_t& rotating_ver);
+  void decode_rotating(bufferlist& rotating_bl);
+
+  bool get_rotating_encrypted(EntityName& name, bufferlist& enc_bl);
+
+  Mutex& get_lock() { return lock; }
+};
+WRITE_CLASS_ENCODER(KeyServer);
+
+
+
+
+
+#endif
diff --git a/src/auth/KeysServer.cc b/src/auth/KeysServer.cc
deleted file mode 100644 (file)
index e2227e6..0000000
+++ /dev/null
@@ -1,368 +0,0 @@
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
-// vim: ts=8 sw=2 smarttab
-/*
- * Ceph - scalable distributed file system
- *
- * Copyright (C) 2004-2009 Sage Weil <sage@newdream.net>
- *
- * This is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software 
- * Foundation.  See file COPYING.
- * 
- */
-
-#include "config.h"
-
-#include "KeysServer.h"
-
-#include "Crypto.h"
-#include "common/Timer.h"
-#include "Auth.h"
-#include "AuthProtocol.h"
-
-#include <sstream>
-
-
-void RotatingSecrets::add(ExpiringCryptoKey& key)
-{
-  secrets[++max_ver] = key;
-
-  while (secrets.size() > KEY_ROTATE_NUM) {
-    map<uint64_t, ExpiringCryptoKey>::iterator iter = secrets.lower_bound(0);
-    secrets.erase(iter);
-  }
-}
-
-bool KeysServerData::get_service_secret(uint32_t service_id, ExpiringCryptoKey& secret, uint64_t& secret_id)
-{
-  map<uint32_t, RotatingSecrets>::iterator iter = rotating_secrets.find(service_id);
-  if (iter == rotating_secrets.end())
-    return false;
-
-  RotatingSecrets& secrets = iter->second;
-  map<uint64_t, ExpiringCryptoKey>::iterator riter = secrets.secrets.lower_bound(0);
-  if (secrets.secrets.size() > 1)
-    ++riter;
-
-
-  secret_id = riter->first;
-  secret = riter->second;
-
-  return true;
-}
-
-bool KeysServerData::get_service_secret(uint32_t service_id, CryptoKey& secret, uint64_t& secret_id)
-{
-  ExpiringCryptoKey e;
-
-  if (!get_service_secret(service_id, e, secret_id))
-    return false;
-
-  secret = e.key;
-
-  return true;
-}
-
-bool KeysServerData::get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret)
-{
-  map<uint32_t, RotatingSecrets>::iterator iter = rotating_secrets.find(service_id);
-  if (iter == rotating_secrets.end())
-    return false;
-
-  RotatingSecrets& secrets = iter->second;
-  map<uint64_t, ExpiringCryptoKey>::iterator riter = secrets.secrets.find(secret_id);
-
-  if (riter == secrets.secrets.end())
-    return false;
-
-  secret = riter->second.key;
-
-  return true;
-}
-
-bool KeysServerData::get_secret(EntityName& name, CryptoKey& secret)
-{
-  map<EntityName, EntityAuth>::iterator iter = secrets.find(name);
-  if (iter == secrets.end())
-    return false;
-
-  secret = iter->second.key;
-
-  return true;
-}
-
-bool KeysServerData::get_caps(EntityName& name, string& type, bufferlist& caps)
-{
-  dout(0) << "get_caps: name=" << name.to_str() << dendl;
-  map<EntityName, EntityAuth>::iterator iter = secrets.find(name);
-  if (iter == secrets.end())
-    return false;
-
-  dout(0) << "get_secret: num of caps=" << iter->second.caps.size() << dendl;
-  map<string, bufferlist>::iterator capsiter = iter->second.caps.find(type);
-  if (capsiter != iter->second.caps.end()) {
-    caps = capsiter->second;
-  }
-
-  return true;
-}
-
-KeysServer::KeysServer() : lock("KeysServer::lock")
-{
-}
-
-int KeysServer::start_server(bool init)
-{
-  Mutex::Locker l(lock);
-
-  if (init) {
-    _generate_all_rotating_secrets(init);
-  }
-  return 0;
-}
-
-void KeysServer::_generate_all_rotating_secrets(bool init)
-{
-  data.rotating_ver++;
-  data.next_rotating_time = g_clock.now();
-  data.next_rotating_time += KEY_ROTATE_TIME;
-  dout(0) << "generate_all_rotating_secrets()" << dendl;
-
-  int i = KEY_ROTATE_NUM;
-
-  if (init)
-    i = 1;
-
-  for (; i <= KEY_ROTATE_NUM; i++) {
-    _rotate_secret(CEPHX_PRINCIPAL_AUTH, i);
-    _rotate_secret(CEPHX_PRINCIPAL_MON, i);
-    _rotate_secret(CEPHX_PRINCIPAL_OSD, i);
-    _rotate_secret(CEPHX_PRINCIPAL_MDS, i);
-  }
-
-  dout(0) << "generated: " << dendl;
-  
-  map<uint32_t, RotatingSecrets>::iterator iter = data.rotating_secrets.begin();
-
-  for (; iter != data.rotating_secrets.end(); ++iter) {
-    dout(0) << "service id: " << iter->first << dendl;
-    RotatingSecrets& key = iter->second;
-
-    map<uint64_t, ExpiringCryptoKey>::iterator mapiter = key.secrets.begin();
-    for (; mapiter != key.secrets.end(); ++mapiter) {
-      dout(0) << "  id: " << mapiter->first << dendl;
-      bufferptr bp = mapiter->second.key.get_secret();
-      hexdump("    key", bp.c_str(), bp.length());
-      dout(0) << "    expiration: " << mapiter->second.expiration << dendl;
-    }
-  }
-}
-
-void KeysServer::_rotate_secret(uint32_t service_id, int factor)
-{
-  ExpiringCryptoKey ek;
-  generate_secret(ek.key);
-  ek.expiration = g_clock.now();
-  ek.expiration += (KEY_ROTATE_TIME * factor);
-  
-  data.add_rotating_secret(service_id, ek);
-}
-
-bool KeysServer::_check_rotate()
-{
-  if (g_clock.now() > data.next_rotating_time) {
-    dout(0) << "KeysServer::check_rotate: need to rotate keys" << dendl;
-    _generate_all_rotating_secrets(false);
-    return true;
-  }
-  return false;
-}
-
-bool KeysServer::get_secret(EntityName& name, CryptoKey& secret)
-{
-  Mutex::Locker l(lock);
-
-  return data.get_secret(name, secret);
-}
-
-bool KeysServer::get_caps(EntityName& name, string& type, bufferlist& caps)
-{
-  Mutex::Locker l(lock);
-
-  return data.get_caps(name, type, caps);
-}
-
-bool KeysServer::get_service_secret(uint32_t service_id, ExpiringCryptoKey& secret, uint64_t& secret_id)
-{
-  Mutex::Locker l(lock);
-
-  return data.get_service_secret(service_id, secret, secret_id);
-}
-
-bool KeysServer::get_service_secret(uint32_t service_id, CryptoKey& secret, uint64_t& secret_id)
-{
-  Mutex::Locker l(lock);
-
-  return data.get_service_secret(service_id, secret, secret_id);
-}
-
-bool KeysServer::get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret)
-{
-  Mutex::Locker l(lock);
-
-  return data.get_service_secret(service_id, secret_id, secret);
-}
-
-bool KeysServer::generate_secret(CryptoKey& secret)
-{
-  bufferptr bp;
-  CryptoHandler *crypto = ceph_crypto_mgr.get_crypto(CEPH_SECRET_AES);
-  if (!crypto)
-    return false;
-
-  if (crypto->create(bp) < 0)
-    return false;
-
-  secret.set_secret(CEPH_SECRET_AES, bp);
-
-  return true;
-}
-
-bool KeysServer::generate_secret(EntityName& name, CryptoKey& secret)
-{
-  if (!generate_secret(secret))
-    return false;
-
-  Mutex::Locker l(lock);
-
-  EntityAuth auth;
-  auth.key = secret;
-
-  data.add_auth(name, auth);
-
-  return true;
-}
-
-bool KeysServer::contains(EntityName& name)
-{
-  Mutex::Locker l(lock);
-
-  return data.contains(name);
-}
-
-void KeysServer::list_secrets(stringstream& ss)
-{
-  Mutex::Locker l(lock);
-
-  map<EntityName, EntityAuth>::iterator mapiter = data.secrets_begin();
-  if (mapiter != data.secrets_end()) {
-    ss << "installed auth entries: " << std::endl;      
-
-    while (mapiter != data.secrets_end()) {
-      const EntityName& name = mapiter->first;
-      ss << name.to_str() << std::endl;
-
-      map<string, bufferlist>::iterator capsiter = mapiter->second.caps.begin();
-      for (; capsiter != mapiter->second.caps.end(); ++capsiter) {
-        bufferlist::iterator dataiter = capsiter->second.begin();
-        string caps;
-        ::decode(caps, dataiter);
-       ss << "\tcaps: [" << capsiter->first << "] " << caps << std::endl;
-      }
-     
-      ++mapiter;
-    }
-  } else {
-    ss << "no installed auth entries!";
-  }
-}
-
-bool KeysServer::updated_rotating(bufferlist& rotating_bl, version_t& rotating_ver)
-{
-  Mutex::Locker l(lock);
-
-  _check_rotate(); 
-
-  if (data.rotating_ver <= rotating_ver)
-    return false;
-
-  ::encode(data.rotating_ver, rotating_bl);
-  ::encode(data.rotating_secrets, rotating_bl);
-
-  rotating_ver = data.rotating_ver;
-
-  return true;
-}
-
-void KeysServer::decode_rotating(bufferlist& rotating_bl)
-{
-  Mutex::Locker l(lock);
-
-  bufferlist::iterator iter = rotating_bl.begin();
-
-  ::decode(data.rotating_ver, iter);
-  ::decode(data.rotating_secrets, iter);
-}
-
-bool KeysServer::get_rotating_encrypted(EntityName& name, bufferlist& enc_bl)
-{
-  Mutex::Locker l(lock);
-
-  map<EntityName, EntityAuth>::iterator mapiter = data.find_name(name);
-  if (mapiter == data.secrets_end())
-    return false;
-
-  CryptoKey& specific_key = mapiter->second.key;
-
-  map<uint32_t, RotatingSecrets>::iterator rotate_iter = data.rotating_secrets.find(name.entity_type);
-  if (rotate_iter == data.rotating_secrets.end())
-    return false;
-
-  RotatingSecrets secrets = rotate_iter->second;
-
-  encode_encrypt(secrets, specific_key, enc_bl);
-
-  return true;
-}
-
-int KeysServer::_build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info)
-{
-  info.ticket.name = auth_ticket_info.ticket.name;
-  info.ticket.addr = auth_ticket_info.ticket.addr;
-  info.ticket.init_timestamps(g_clock.now(), g_conf.auth_service_ticket_ttl);
-
-  generate_secret(info.session_key);
-
-  info.service_id = service_id;
-
-  string s;
-  get_entity_type_str(service_id, s);
-
-  if (!data.get_caps(info.ticket.name, s, info.ticket.caps)) {
-    return -EINVAL;
-  }
-
-  return 0;
-}
-
-int KeysServer::build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info)
-{
-  if (get_service_secret(service_id, info.service_secret, info.secret_id) < 0) {
-    return -EPERM;
-  }
-
-  Mutex::Locker l(lock);
-
-  return _build_session_auth_info(service_id, auth_ticket_info, info);
-}
-
-int KeysServer::build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info,
-                                        CryptoKey& service_secret, uint64_t secret_id)
-{
-  info.service_secret = service_secret;
-  info.secret_id = secret_id;
-
-  return _build_session_auth_info(service_id, auth_ticket_info, info);
-}
-
diff --git a/src/auth/KeysServer.h b/src/auth/KeysServer.h
deleted file mode 100644 (file)
index 5ff002c..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
-// vim: ts=8 sw=2 smarttab
-/*
- * Ceph - scalable distributed file system
- *
- * Copyright (C) 2004-2009 Sage Weil <sage@newdream.net>
- *
- * This is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software 
- * Foundation.  See file COPYING.
- * 
- */
-
-#ifndef __KEYSSERVER_H
-#define __KEYSSERVER_H
-
-#include "config.h"
-
-#include "Crypto.h"
-#include "common/Timer.h"
-#include "Auth.h"
-
-#define KEY_ROTATE_TIME 20
-#define KEY_ROTATE_NUM 3
-
-
-struct KeysServerData {
-  version_t version;
-  version_t rotating_ver;
-  utime_t next_rotating_time;
-
-  /* for each entity */
-  map<EntityName, EntityAuth> secrets;
-
-  /* for each service type */
-  map<uint32_t, RotatingSecrets> rotating_secrets;
-
-  KeysServerData() : version(0), rotating_ver(0) {}
-
-  void encode(bufferlist& bl) const {
-    ::encode(version, bl);
-    ::encode(rotating_ver, bl);
-    ::encode(next_rotating_time, bl);
-    ::encode(secrets, bl);
-    ::encode(rotating_secrets, bl);
-  }
-  void decode(bufferlist::iterator& bl) {
-    ::decode(version, bl);
-    ::decode(rotating_ver, bl);
-    ::decode(next_rotating_time, bl);
-    ::decode(secrets, bl);
-    ::decode(rotating_secrets, bl);
-  }
-
-  bool contains(EntityName& name) {
-    return (secrets.find(name) != secrets.end());
-  }
-
-  void add_auth(const EntityName& name, EntityAuth& auth) {
-    secrets[name] = auth;
-  }
-
-  void remove_secret(const EntityName& name) {
-    map<EntityName, EntityAuth>::iterator iter = secrets.find(name);
-    if (iter == secrets.end())
-      return;
-    secrets.erase(iter);
-  }
-
-  void add_rotating_secret(uint32_t service_id, ExpiringCryptoKey& key) {
-    rotating_secrets[service_id].add(key);
-  }
-
-  bool get_service_secret(uint32_t service_id, ExpiringCryptoKey& secret, uint64_t& secret_id);
-  bool get_service_secret(uint32_t service_id, CryptoKey& secret, uint64_t& secret_id);
-  bool get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret);
-  bool get_secret(EntityName& name, CryptoKey& secret);
-  bool get_caps(EntityName& name, string& type, bufferlist& caps);
-
-  map<EntityName, EntityAuth>::iterator secrets_begin() { return secrets.begin(); }
-  map<EntityName, EntityAuth>::iterator secrets_end() { return secrets.end(); }
-  map<EntityName, EntityAuth>::iterator find_name(EntityName& name) { return secrets.find(name); }
-};
-WRITE_CLASS_ENCODER(KeysServerData);
-
-class KeysServer : public KeysKeeper {
-  KeysServerData data;
-
-  Mutex lock;
-
-  void _rotate_secret(uint32_t service_id, int factor);
-  void _generate_all_rotating_secrets(bool init);
-  bool _check_rotate();
-  int _build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info);
-public:
-  KeysServer();
-
-  bool generate_secret(CryptoKey& secret);
-
-  bool get_secret(EntityName& name, CryptoKey& secret);
-  bool get_caps(EntityName& name, string& type, bufferlist& caps);
-  bool get_active_rotating_secret(EntityName& name, CryptoKey& secret);
-  int start_server(bool init);
-  void rotate_timeout(double timeout);
-
-  int build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info);
-  int build_session_auth_info(uint32_t service_id, AuthServiceTicketInfo& auth_ticket_info, SessionAuthInfo& info,
-                                        CryptoKey& service_secret, uint64_t secret_id);
-
-  /* get current secret for specific service type */
-  bool get_service_secret(uint32_t service_id, ExpiringCryptoKey& service_key, uint64_t& secret_id);
-  bool get_service_secret(uint32_t service_id, CryptoKey& service_key, uint64_t& secret_id);
-  bool get_service_secret(uint32_t service_id, uint64_t secret_id, CryptoKey& secret);
-
-  bool generate_secret(EntityName& name, CryptoKey& secret);
-
-  void encode(bufferlist& bl) const {
-    ::encode(data, bl);
-  }
-  void decode(bufferlist::iterator& bl) {
-    Mutex::Locker l(lock);
-    ::decode(data, bl);
-  }
-  bool contains(EntityName& name);
-  void list_secrets(stringstream& ss);
-  version_t get_ver() {
-    Mutex::Locker l(lock);
-    return data.version;    
-  }
-
-  void set_ver(version_t ver) {
-    Mutex::Locker l(lock);
-    data.version = ver;
-  }
-
-  void add_auth(const EntityName& name, EntityAuth& auth) {
-    Mutex::Locker l(lock);
-    data.add_auth(name, auth);
-  }
-
-  void remove_secret(const EntityName& name) {
-    Mutex::Locker l(lock);
-    data.remove_secret(name);
-  }
-
-  void add_rotating_secret(uint32_t service_id, ExpiringCryptoKey& key) {
-    Mutex::Locker l(lock);
-    data.add_rotating_secret(service_id, key);
-  }
-  void clone_to(KeysServerData& dst) {
-    Mutex::Locker l(lock);
-    dst = data;
-  }
-
-  bool updated_rotating(bufferlist& rotating_bl, version_t& rotating_ver);
-  void decode_rotating(bufferlist& rotating_bl);
-
-  bool get_rotating_encrypted(EntityName& name, bufferlist& enc_bl);
-
-  Mutex& get_lock() { return lock; }
-};
-WRITE_CLASS_ENCODER(KeysServer);
-
-
-
-
-
-#endif
index 6bf09367facaedcdfdc62dd30efb13b1984be804..f6c3e68dc0dda03b5a23998c85a447f7eea41b7c 100644 (file)
@@ -19,7 +19,6 @@ using namespace std;
 #include "common/ConfUtils.h"
 #include "common/common_init.h"
 #include "auth/Crypto.h"
-#include "auth/KeysServer.h"
 #include "auth/Auth.h"
 
 void usage()
index efdf82ac402217d31e65cd8cc5887fa1d9f5b806..e162d35c2191684e1b23487ca51522b125f81d1f 100644 (file)
@@ -205,7 +205,7 @@ void handle_notify(MMonObserveNotify *notify)
     {
       bufferlist::iterator p = notify->bl.begin();
       if (notify->is_latest) {
-       KeysServerData data;
+       KeyServerData data;
        ::decode(data, p);
        dout(0) << "   auth " << dendl;
 #if 0
index d5dcc30bf5dbe9146e59f28b777050f6382cf248..8109f945162a9e23fc0b93b6daf5962c2008577f 100644 (file)
@@ -18,7 +18,6 @@
 #include "include/types.h"
 #include "include/encoding.h"
 #include "auth/Auth.h"
-#include "auth/KeysServer.h"
 
 struct AuthLibEntry {
   bool rotating;
index ef216d0bdeb0fe9617a88c2e6f8667e00bdfa792..5c9f773ea922e4933fd1f12e9e40a15319511191 100644 (file)
@@ -65,7 +65,6 @@ class RadosClient : public Dispatcher
     uint32_t want = peer_id_to_entity_type(dest_type);
     if (monclient.auth.build_authorizer(want, authorizer) < 0)
       return false;
-
     return true;
   }
   void ms_handle_connect(Connection *con);
index 671ce58c7ea77fefc0222fc10bf1924702bdb09b..4b3c64a76453bea5c37272c4959f899e33da78c7 100644 (file)
@@ -55,7 +55,7 @@ ostream& operator<<(ostream& out, AuthMonitor& pm)
 void AuthMonitor::check_rotate()
 {
   AuthLibEntry entry;
-  if (!mon->keys_server.updated_rotating(entry.rotating_bl, last_rotating_ver))
+  if (!mon->key_server.updated_rotating(entry.rotating_bl, last_rotating_ver))
     return;
   dout(0) << "AuthMonitor::tick() updated rotating, now calling propose_pending" << dendl;
 
@@ -89,7 +89,7 @@ void AuthMonitor::on_active()
 
   if (!mon->is_leader())
     return;
-  mon->keys_server.start_server(true);
+  mon->key_server.start_server(true);
 /*
   check_rotate();
 */
@@ -162,7 +162,7 @@ bool AuthMonitor::update_from_paxos()
 {
   dout(0) << "AuthMonitor::update_from_paxos()" << dendl;
   version_t paxosv = paxos->get_version();
-  version_t keys_ver = mon->keys_server.get_ver();
+  version_t keys_ver = mon->key_server.get_ver();
   if (paxosv == keys_ver) return true;
   assert(paxosv >= keys_ver);
 
@@ -173,7 +173,7 @@ bool AuthMonitor::update_from_paxos()
     if (v) {
       dout(7) << "update_from_paxos startup: loading summary e" << v << dendl;
       bufferlist::iterator p = latest.begin();
-      ::decode(mon->keys_server, p);
+      ::decode(mon->key_server, p);
     }
   } 
 
@@ -193,18 +193,18 @@ bool AuthMonitor::update_from_paxos()
       case AUTH_INC_ADD:
         if (!entry.rotating) {
           derr(0) << "got entry name=" << entry.name.to_str() << dendl;
-          mon->keys_server.add_auth(entry.name, entry.auth);
+          mon->key_server.add_auth(entry.name, entry.auth);
         } else {
           derr(0) << "got AUTH_INC_ADD with entry.rotating" << dendl;
         }
         break;
       case AUTH_INC_DEL:
-        mon->keys_server.remove_secret(entry.name);
+        mon->key_server.remove_secret(entry.name);
         break;
       case AUTH_INC_SET_ROTATING:
         {
           dout(0) << "AuthMonitor::update_from_paxos: decode_rotating" << dendl;
-          mon->keys_server.decode_rotating(entry.rotating_bl);
+          mon->key_server.decode_rotating(entry.rotating_bl);
         }
         break;
       case AUTH_INC_NOP:
@@ -214,12 +214,12 @@ bool AuthMonitor::update_from_paxos()
       }
     }
     keys_ver++;
-    mon->keys_server.set_ver(keys_ver);
+    mon->key_server.set_ver(keys_ver);
   }
 
   bufferlist bl;
-  Mutex::Locker l(mon->keys_server.get_lock());
-  ::encode(mon->keys_server, bl);
+  Mutex::Locker l(mon->key_server.get_lock());
+  ::encode(mon->key_server, bl);
   paxos->stash_latest(paxosv, bl);
 
   return true;
@@ -228,7 +228,7 @@ bool AuthMonitor::update_from_paxos()
 void AuthMonitor::init()
 {
   version_t paxosv = paxos->get_version();
-  version_t keys_ver = mon->keys_server.get_ver();
+  version_t keys_ver = mon->key_server.get_ver();
 
   dout(0) << "AuthMonitor::init() paxosv=" << paxosv << dendl;
 
@@ -242,7 +242,7 @@ void AuthMonitor::init()
     if (v) {
       dout(0) << "AuthMonitor::init() startup: loading summary e" << v << dendl;
       bufferlist::iterator p = latest.begin();
-      ::decode(mon->keys_server, p);
+      ::decode(mon->key_server, p);
     }
   }
 
@@ -370,7 +370,7 @@ bool AuthMonitor::preprocess_auth_rotating(MAuthRotating *m)
   if (!reply)
     return true;
 
-  if (mon->keys_server.get_rotating_encrypted(m->entity_name, reply->response_bl)) {
+  if (mon->key_server.get_rotating_encrypted(m->entity_name, reply->response_bl)) {
     reply->status = 0;
   } else {
     reply->status = -EPERM;
@@ -392,7 +392,7 @@ bool AuthMonitor::preprocess_auth_mon(MAuthMon *m)
   for (deque<AuthLibEntry>::iterator p = m->info.begin();
        p != m->info.end();
        p++) {
-    if (!mon->keys_server.contains((*p).name))
+    if (!mon->key_server.contains((*p).name))
       num_new++;
   }
   if (!num_new) {
@@ -518,7 +518,7 @@ bool AuthMonitor::prepare_command(MMonCommand *m)
       string name = m->cmd[2];
       AuthLibEntry entry;
       entry.name.from_str(name);
-      if (!mon->keys_server.contains(entry.name)) {
+      if (!mon->key_server.contains(entry.name)) {
         ss << "couldn't find entry " << name;
         rs = -ENOENT;
         goto done;
@@ -533,7 +533,7 @@ bool AuthMonitor::prepare_command(MMonCommand *m)
       paxos->wait_for_commit(new Monitor::C_Command(mon, m, 0, rs, paxos->get_version()));
       return true;
     } else if (m->cmd[1] == "list") {
-      mon->keys_server.list_secrets(ss);
+      mon->key_server.list_secrets(ss);
       err = 0;
       goto done;
     } else {
index 0aaad0908be436328bf475cc33570fbf72c30fd6..0244cd32e900cd9fbff80e3389fbcf3de5453cf9 100644 (file)
@@ -26,7 +26,7 @@ using namespace std;
 
 #include "include/AuthLibrary.h"
 
-#include "auth/KeysServer.h"
+#include "auth/KeyServer.h"
 
 class MMonCommand;
 class MAuth;
index a8ece0c793d8ec3966754f31984c28ae6d4ada5d..69a5af8bcf4500fdeeeebbf1bbd9eb1c79485ffc 100644 (file)
@@ -32,7 +32,6 @@
 
 #include "auth/Auth.h"
 #include "auth/AuthProtocol.h"
-#include "auth/KeysServer.h"
 #include "auth/KeyRing.h"
 
 #include "config.h"
index 192730b98b6b348632bdd435adb5cf87838d3bd1..00096049fca5212edde94ba9f0dd71aae2b22d55 100644 (file)
@@ -903,7 +903,7 @@ int Monitor::do_authorize(bufferlist::iterator& indata, bufferlist& result_bl)
       AuthServiceTicketInfo auth_ticket_info;
 
       bufferlist tmp_bl;
-      ret = verify_authorizer(keys_server, indata, auth_ticket_info, tmp_bl);
+      ret = verify_authorizer(key_server, indata, auth_ticket_info, tmp_bl);
       result_bl.claim_append(tmp_bl);
     }
     break;
@@ -931,7 +931,7 @@ bool Monitor::ms_get_authorizer(int dest_type, AuthAuthorizer& authorizer, bool
   dout(0) << "ms_get_authorizer service_id=" << service_id << dendl;
 
   if (service_id != CEPHX_PRINCIPAL_MON) {
-    ret = keys_server.build_session_auth_info(service_id, auth_ticket_info, info);
+    ret = key_server.build_session_auth_info(service_id, auth_ticket_info, info);
     if (ret < 0) {
       return false;
     }
@@ -940,16 +940,16 @@ bool Monitor::ms_get_authorizer(int dest_type, AuthAuthorizer& authorizer, bool
     name.entity_type = CEPHX_PRINCIPAL_MON;
 
     CryptoKey secret;
-    if (!keys_server.get_secret(name, secret)) {
+    if (!key_server.get_secret(name, secret)) {
       dout(0) << "couldn't get secret for mon service!" << dendl;
       stringstream ss;
-      keys_server.list_secrets(ss);
+      key_server.list_secrets(ss);
       dout(0) << ss.str() << dendl;
       return false;
     }
     /* mon to mon authentication uses the private monitor shared key and not the
        rotating key */
-    ret = keys_server.build_session_auth_info(service_id, auth_ticket_info, info, secret, (uint64_t)-1);
+    ret = key_server.build_session_auth_info(service_id, auth_ticket_info, info, secret, (uint64_t)-1);
     if (ret < 0) {
       return false;
     }
@@ -989,7 +989,7 @@ bool Monitor::ms_verify_authorizer(Connection *con, int peer_type,
   if (!authorizer_data.length())
     return true; /* we're not picky */
 
-  int ret = verify_authorizer(keys_server, iter, auth_ticket_info, authorizer_reply);
+  int ret = verify_authorizer(key_server, iter, auth_ticket_info, authorizer_reply);
   dout(0) << "Monitor::verify_authorizer returns " << ret << dendl;
 
   isvalid = (ret >= 0);
index 583af6bc5750280f020ca5f09ba7798d0d1f60e3..8d363f2fe9edd10239feda80853dca48ef0ee012 100644 (file)
@@ -37,7 +37,7 @@
 
 #include "common/LogClient.h"
 
-#include "auth/KeysServer.h"
+#include "auth/KeyServer.h"
 
 
 class MonitorStore;
@@ -70,7 +70,7 @@ public:
   void reset_tick();
   friend class C_Mon_Tick;
 
-  KeysServer keys_server;
+  KeyServer key_server;
 
 
 
index b0993036f8824d76af7ed41ffb4281aa1e5dce56..d84dce31419fadb31cc94a5b54e4f134d5d7d91f 100644 (file)
@@ -80,8 +80,6 @@
 
 #include "common/ClassHandler.h"
 
-#include "auth/KeysServer.h"
-
 #include <iostream>
 #include <errno.h>
 #include <sys/stat.h>
index 04dde2eb59368bda418a1260b25d2073a071bf03..f18482028987e712736aa9fa378dbaeeef459ca0 100644 (file)
@@ -1,4 +1,4 @@
-#include "auth/KeysServer.h"
+#include "auth/KeyServer.h"
 
 #include "config.h"
 
@@ -8,7 +8,7 @@
 int main(int argc, char *argv[])
 {
 
-  KeysServer server;
+  KeyServer server;
 
   dout(0) << "server created" << dendl;