1
|
class Subject:
|
2
|
ATTR_MAP = {"C": "common_name", "ST": "state", "L": "locality", "CN": "common_name", "O": "organization",
|
3
|
"OU": "organization_unit", "emailAddress": "email_address"}
|
4
|
|
5
|
def __init__(self, common_name=None, country=None, locality=None, state=None, organization=None,
|
6
|
organization_unit=None, email_address=None):
|
7
|
self.common_name = common_name
|
8
|
self.country = country
|
9
|
self.locality = locality
|
10
|
self.state = state
|
11
|
self.organization = organization
|
12
|
self.organization_unit = organization_unit
|
13
|
self.email_address = email_address
|
14
|
|
15
|
@staticmethod
|
16
|
def from_dict(d):
|
17
|
if not isinstance(d, dict):
|
18
|
return None
|
19
|
|
20
|
s = Subject()
|
21
|
for k, v in Subject.ATTR_MAP.items():
|
22
|
if k in d:
|
23
|
if not isinstance(d[k], str):
|
24
|
return None
|
25
|
s.__setattr__(v, d[k])
|
26
|
|
27
|
return s
|