added classes for gid & credentials
[sfa.git] / util / gid.py
1 from cert import *
2 import uuid
3 import xmlrpclib
4
5 # GID is a tuplie:
6 #    (uuid, hrn, public_key)
7
8 def create_uuid():
9     return str(uuid.uuid4().int)
10
11 class GID(Certificate):
12     uuid = None
13     hrn = None
14
15     def __init__(self, create=False, subject=None, string=None, filename=None, uuid=None, hrn=None):
16         Certificate.__init__(self, create, subject, string, filename)
17         if uuid:
18             self.uuid = uuid
19         if hrn:
20             self.hrn = hrn
21
22     def set_uuid(self, uuid):
23         self.uuid = uuid
24
25     def get_uuid(self):
26         if not self.uuid:
27             self.decode()
28         return self.uuid
29
30     def set_hrn(self, hrn):
31         self.hrn = hrn
32
33     def get_hrn(self):
34         if not self.hrn:
35             self.decode()
36         return self.hrn
37
38     def encode(self):
39         dict = {"uuid": self.uuid,
40                 "hrn": self.hrn}
41         str = xmlrpclib.dumps((dict,))
42         self.set_data(str)
43
44     def decode(self):
45         data = self.get_data()
46         if data:
47             dict = xmlrpclib.loads(self.get_data())[0][0]
48         else:
49             dict = {}
50             
51         self.uuid = dict.get("uuid", None)
52         self.hrn = dict.get("hrn", None)
53
54
55