key-params.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
23 #ifndef NDN_KEY_PARAMS_HPP
24 #define NDN_KEY_PARAMS_HPP
25 
26 #include "security-common.hpp"
27 
28 namespace ndn {
29 
34 class KeyParams {
35 public:
36  virtual
37  ~KeyParams()
38  {
39  }
40 
41  KeyType
42  getKeyType() const
43  {
44  return keyType_;
45  }
46 
47 protected:
48  explicit
49  KeyParams(KeyType keyType)
50  : keyType_(keyType)
51  {
52  }
53 
54 private:
55  KeyType keyType_;
56 };
57 
58 class RsaKeyParams : public KeyParams {
59 public:
60  explicit
61  RsaKeyParams(uint32_t size = RsaKeyParams::getDefaultSize())
62  : KeyParams(RsaKeyParams::getType()), size_(size)
63  {
64  }
65 
66  uint32_t
67  getKeySize() const
68  {
69  return size_;
70  }
71 
72 private:
73  static uint32_t
74  getDefaultSize() { return 2048; }
75 
76  static KeyType
77  getType() { return KEY_TYPE_RSA; }
78 
79  uint32_t size_;
80 };
81 
82 class EcdsaKeyParams : public KeyParams {
83 public:
84  explicit
85  EcdsaKeyParams(uint32_t size = EcdsaKeyParams::getDefaultSize())
86  : KeyParams(EcdsaKeyParams::getType()), size_(size)
87  {
88  }
89 
90  uint32_t
91  getKeySize() const
92  {
93  return size_;
94  }
95 
96 private:
97  static uint32_t
98  getDefaultSize() { return 256; }
99 
100  static KeyType
101  getType() { return KEY_TYPE_ECDSA; }
102 
103  uint32_t size_;
104 };
105 
106 }
107 
108 #endif
Copyright (C) 2013-2016 Regents of the University of California.
Definition: common.hpp:35
Definition: key-params.hpp:58
KeyParams is a base class for key parameters.
Definition: key-params.hpp:34
Definition: key-params.hpp:82