4db23073e40ae40d2c73b0d7f6d011c3eee87cd3
[sfa.git] / util / sec / certs / gen.py
1 import sys
2 from OpenSSL import crypto
3 sys.path.append('../')
4 sys.path.append('../..')
5 from sec import *
6
7 #id certificates
8
9 create_self_cert('planetlab')
10 create_self_cert('jp')
11 create_self_cert('osaka')
12 create_self_cert('usersoner')
13
14 planetlab_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('planetlab.cert').read())
15 jp_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('jp.cert').read())
16 osaka_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('osaka.cert').read())
17 usersoner_cert = crypto.load_certificate(crypto.FILETYPE_PEM, open('usersoner.cert').read())
18
19 planetlab_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('planetlab.pkey').read())
20 jp_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('jp.pkey').read())
21 osaka_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('osaka.pkey').read())
22 usersoner_pkey = crypto.load_privatekey(crypto.FILETYPE_PEM, open('usersoner.pkey').read())
23
24 #accounting certificates
25
26 planetlab_acc = create_acc(planetlab_cert, planetlab_pkey, planetlab_cert.get_pubkey(), 'planetlab', '77059b82-e826-11dc-9dc2-001ec2091968')
27 jp_acc = create_acc(planetlab_cert, planetlab_pkey, jp_cert.get_pubkey(), 'planetlab.jp', '3fd66a4c-d574-4aa0-9ddd-3904af595bd2')
28 osaka_acc = create_acc(jp_cert, jp_pkey, osaka_cert.get_pubkey(), 'planetlab.jp.osaka', '05b3c29b-0dae-4a95-b92b-0e01548f61e0')
29 usersoner_acc = create_acc(osaka_cert, osaka_pkey, usersoner_cert.get_pubkey(), 'planetlab.jp.osaka.usersoner', '220828220198687580431599291716859620971')
30
31 #credential certificates
32
33 planetlab_cred = create_cred(planetlab_cert, planetlab_pkey, planetlab_cert.get_pubkey(), 'Registry credentials', '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)#0:reg:planetlab')
34 jp_cred = create_cred(planetlab_cert, planetlab_pkey, jp_cert.get_pubkey(), 'Registry credentials', '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:planetlab#1:reg:planetlab.jp')
35 osaka_cred = create_cred(jp_cert, jp_pkey, osaka_cert.get_pubkey(), 'Registry credentials', '(2-0)(4-0)(6-0)(7-0)(8-0)(9-0)(0-1)(1-1)(2-1)(3-1)(4-1)(5-1)(6-1)(7-1)(8-1)(9-1)#0:reg:planetlab.jp#1:reg:planetlab.jp.osaka')
36 usersoner_cred = create_cred(osaka_cert, osaka_pkey, usersoner_cert.get_pubkey(), 'Registry credentials', '(0-0)(1-0)(2-0)(3-0)(4-0)(5-0)(6-0)(7-0)(8-0)(9-0)#0:reg:planetlab.jp.osaka')
37
38 #acc and cred files
39
40 ac1 = crypto.dump_certificate(crypto.FILETYPE_PEM, planetlab_acc)
41 ac2 = crypto.dump_certificate(crypto.FILETYPE_PEM, jp_acc)
42 ac3 = crypto.dump_certificate(crypto.FILETYPE_PEM, osaka_acc)
43 ac4 = crypto.dump_certificate(crypto.FILETYPE_PEM, usersoner_acc)
44 #open('planetlab_acc_file', 'w').write(ac1)
45 #open('jp_acc_file', 'w').write(ac2+ac1)
46 open('osaka_acc_file', 'w').write(ac3+ac2+ac1)
47 open('usersoner_acc_file', 'w').write(ac4+ac3+ac2+ac1)
48
49 cred1 = crypto.dump_certificate(crypto.FILETYPE_PEM, planetlab_cred)
50 cred2 = crypto.dump_certificate(crypto.FILETYPE_PEM, jp_cred)
51 cred3 = crypto.dump_certificate(crypto.FILETYPE_PEM, osaka_cred)
52 cred4 = crypto.dump_certificate(crypto.FILETYPE_PEM, usersoner_cred)
53 #open('planetlab_cred_file', 'w').write(cred1)
54 #open('jp_cred_file', 'w').write(cred2+cred1)
55 open('osaka_cred_file', 'w').write(cred3+cred2+cred1)
56 open('usersoner_cred_file', 'w').write(cred4+cred3+cred2+cred1)
57