libcryptosec
GeneralName.h
Go to the documentation of this file.
1 #ifndef GENERALNAME_H_
2 #define GENERALNAME_H_
3 
4 #include <openssl/x509v3.h>
5 
6 #include <string>
7 
8 #include "ObjectIdentifier.h"
9 #include "RDNSequence.h"
10 
12 {
13 public:
14  enum Type
15  {
20 // X400_ADDRESS,
22 // EDI_PARTY_NAME
26  };
27  GeneralName();
28  GeneralName(GENERAL_NAME *generalName);
29 // GeneralName(const GeneralName& generalName);
30  virtual ~GeneralName();
31  std::string getXmlEncoded();
32  std::string getXmlEncoded(std::string tab);
33  void setOtherName(std::string oid, std::string data);
34  pair<std::string, std::string> getOtherName() const;
35  void setRfc822Name(std::string data);
36  std::string getRfc822Name() const;
37  void setDnsName(std::string data);
38  std::string getDnsName() const;
41  void setUniformResourceIdentifier(std::string data);
42  std::string getUniformResourceIdentifier() const;
43  void setIpAddress(std::string data);
44  std::string getIpAddress() const;
45  void setRegisteredId(ObjectIdentifier objectIdentifier);
47  GeneralName::Type getType() const;
48  GENERAL_NAME* getGeneralName();
49  static std::string type2Name(GeneralName::Type type);
50  GeneralName& operator=(const GeneralName& value);
51  static std::string data2IpAddress(unsigned char *data);
52 protected:
54  std::string data; /* rfc822Name, dnsName, uniformResourceIdentifier, ipAddress */
55  std::string oid; /* otherName */
56 
59 
60  void clean();
61 
62  static unsigned char* ipAddress2Data(std::string ipAddress);
63 };
64 
65 #endif /*GENERALNAME_H_*/
Definition: RDNSequence.h:17
static std::string type2Name(GeneralName::Type type)
Definition: GeneralName.cpp:300
Definition: GeneralName.h:16
GENERAL_NAME * getGeneralName()
Definition: GeneralName.cpp:217
GeneralName & operator=(const GeneralName &value)
Definition: GeneralName.cpp:360
void setRegisteredId(ObjectIdentifier objectIdentifier)
Definition: GeneralName.cpp:200
Definition: GeneralName.h:25
void setDnsName(std::string data)
Definition: GeneralName.cpp:152
Type
Definition: GeneralName.h:14
GeneralName::Type getType() const
Definition: GeneralName.cpp:212
void setRfc822Name(std::string data)
Definition: GeneralName.cpp:140
std::string oid
Definition: GeneralName.h:55
Definition: ObjectIdentifier.h:11
std::string getRfc822Name() const
Definition: GeneralName.cpp:147
void setOtherName(std::string oid, std::string data)
Definition: GeneralName.cpp:129
RDNSequence getDirectoryName() const
Definition: GeneralName.cpp:171
std::string getUniformResourceIdentifier() const
Definition: GeneralName.cpp:183
std::string getXmlEncoded()
Definition: GeneralName.cpp:89
Definition: GeneralName.h:24
std::string data
Definition: GeneralName.h:54
GeneralName::Type type
Definition: GeneralName.h:53
RDNSequence directoryName
Definition: GeneralName.h:57
Definition: GeneralName.h:19
Definition: GeneralName.h:21
static unsigned char * ipAddress2Data(std::string ipAddress)
Definition: GeneralName.cpp:333
void clean()
Definition: GeneralName.cpp:269
Definition: GeneralName.h:17
static std::string data2IpAddress(unsigned char *data)
Definition: GeneralName.cpp:395
pair< std::string, std::string > getOtherName() const
Definition: GeneralName.cpp:136
Definition: GeneralName.h:11
ObjectIdentifier registeredId
Definition: GeneralName.h:58
std::string getIpAddress() const
Definition: GeneralName.cpp:195
ObjectIdentifier getRegisteredId() const
Definition: GeneralName.cpp:207
void setDirectoryName(RDNSequence &data)
Definition: GeneralName.cpp:164
Definition: GeneralName.h:23
std::string getDnsName() const
Definition: GeneralName.cpp:159
virtual ~GeneralName()
Definition: GeneralName.cpp:85
void setIpAddress(std::string data)
Definition: GeneralName.cpp:188
void setUniformResourceIdentifier(std::string data)
Definition: GeneralName.cpp:176
Definition: GeneralName.h:18
GeneralName()
Definition: GeneralName.cpp:3