libcryptosec
RDNSequence.h
Go to the documentation of this file.
1 #ifndef RDNSEQUENCE_H_
2 #define RDNSEQUENCE_H_
3 
4 #include <openssl/x509.h>
5 
6 #include <string>
7 #include <iostream>
8 #include <vector>
9 #include <map>
10 
11 #include <libcryptosec/ByteArray.h>
12 #include "ObjectIdentifier.h"
14 
16 
18 {
19 public:
20  enum EntryType
21  {
22  COUNTRY = 0,
24  LOCALITY = 2,
28  EMAIL = 6,
31  TITLE = 9,
32  SURNAME = 10,
33  GIVEN_NAME = 11,
34  INITIALS = 12,
35  PSEUDONYM = 13,
38  UNKNOWN = 16,
39  };
40 
41  RDNSequence();
42  RDNSequence(X509_NAME *rdn);
43  RDNSequence(STACK_OF(X509_NAME_ENTRY) *entries);
44  virtual ~RDNSequence();
45  std::string getXmlEncoded();
46  std::string getXmlEncoded(std::string tab);
47  void addEntry(RDNSequence::EntryType type, std::string value);
48  void addEntry(RDNSequence::EntryType type, std::vector<std::string> values);
49  std::vector<std::string> getEntries(RDNSequence::EntryType type);
50  std::vector<std::pair<ObjectIdentifier, std::string> > getUnknownEntries();
51  std::vector<std::pair<ObjectIdentifier, std::string> > getEntries() const;
52  X509_NAME* getX509Name();
53  RDNSequence& operator =(const RDNSequence& value);
54 protected:
55 // std::map<EntryType, std::vector<std::string> > entries;
56 // std::vector<std::pair<std::string, std::string> > unknownEntries;
57 
58  std::vector<std::pair<ObjectIdentifier, std::string> > newEntries;
59 
60  static RDNSequence::EntryType id2Type(int id);
61  static int type2Id(RDNSequence::EntryType type);
62  static std::string getNameId(RDNSequence::EntryType type);
63 
64 // std::string getNameId(RDNSequence::EntryType type);
65 };
66 
67 #endif /*RDNSEQUENCE_H_*/
std::vector< std::pair< ObjectIdentifier, std::string > > getUnknownEntries()
Definition: RDNSequence.cpp:198
static int type2Id(RDNSequence::EntryType type)
Definition: RDNSequence.cpp:392
Definition: RDNSequence.h:27
Definition: RDNSequence.h:26
Definition: RDNSequence.h:17
Definition: RDNSequence.h:28
std::string getXmlEncoded()
Definition: RDNSequence.cpp:116
Definition: RDNSequence.h:30
std::vector< std::pair< ObjectIdentifier, std::string > > getEntries() const
Definition: RDNSequence.cpp:216
void addEntry(RDNSequence::EntryType type, std::string value)
Definition: RDNSequence.cpp:161
Definition: RDNSequence.h:34
static std::string getNameId(RDNSequence::EntryType type)
Definition: RDNSequence.cpp:273
Definition: RDNSequence.h:29
Definition: RDNSequence.h:36
Definition: RDNSequence.h:24
Definition: RDNSequence.h:22
std::vector< std::pair< ObjectIdentifier, std::string > > newEntries
Definition: RDNSequence.h:58
Definition: RDNSequence.h:33
Definition: RDNSequence.h:38
Definition: RDNSequence.h:31
Definition: RDNSequence.h:35
Definition: RDNSequence.h:25
RDNSequence & operator=(const RDNSequence &value)
Definition: RDNSequence.cpp:452
EntryType
Definition: RDNSequence.h:20
Definition: RDNSequence.h:23
Definition: RDNSequence.h:37
virtual ~RDNSequence()
Definition: RDNSequence.cpp:112
X509_NAME * getX509Name()
Definition: RDNSequence.cpp:221
Definition: RDNSequence.h:32
static RDNSequence::EntryType id2Type(int id)
Definition: RDNSequence.cpp:333
RDNSequence()
Definition: RDNSequence.cpp:3