source: examples/python_tests/experiment_create_rt0/attr.py @ 5f551d3

mei_rt2mei_rt2_fix_1
Last change on this file since 5f551d3 was 5f551d3, checked in by Mei <mei@…>, 12 years ago

1) add more python examples

  • Property mode set to 100755
File size: 3.3 KB
Line 
1#!/usr/bin/env python
2
3"""
4  to test with python
5
6cmd1:env keystore=`pwd` ./attr.py
7"""
8
9import os
10import ABAC
11
12keystore=os.environ["keystore"]
13
14ctxt = ABAC.Context()
15print "ABAC version %s" % ctxt.version()
16
17ctxt.load_directory(keystore)
18
19out = ctxt.context_principals()
20print "...initial principal set..."
21for x in out[1]:
22    print "%s " % x.string()
23print "\n" 
24
25out = ctxt.context_credentials()
26print "...initial policy attribute set..."
27for c in out[1]:
28    print "%s <- %s" % (c.head_string(), c.tail_string())
29print "\n"
30
31acmeID=ABAC.ID("Acme_ID.pem");
32acmeID.id_load_privkey_file("Acme_private.pem");
33acme=acmeID.id_keyid()
34
35bobID=ABAC.ID("Bob_ID.pem");
36bobID.id_load_privkey_file("Bob_private.pem");
37bob=bobID.id_keyid()
38
39aliceID=ABAC.ID("Alice_ID.pem");
40aliceID.id_load_privkey_file("Alice_private.pem");
41alice=aliceID.id_keyid()
42
43globotronID=ABAC.ID("Globotron_ID.pem");
44globotronID.id_load_privkey_file("Globotron_private.pem");
45globotron=globotronID.id_keyid()
46
47################################################
48# [keyid:Acme].role:experiment_create
49#           <- [keyid:Acme].role:partner.role:experiment_create
50head=ABAC.Role(acme,"experiment_create")
51tail = ABAC.Role(acme,"partner","experiment_create")
52attr=ABAC.Attribute(head, 1800)
53attr.attribute_add_tail(tail)
54attr.attribute_bake()
55attr.attribute_write_cert("Acme_experiment_create__Acme_partner_experiment_create_attr.der")
56ctxt.load_attribute_file("Acme_experiment_create__Acme_partner_experiment_create_attr.der")
57print attr.string() 
58print attr.typed_string()
59print "\n"
60
61#################################################
62# [keyid:Acme].role:partner <- [keyid:Globotron]
63#
64head=ABAC.Role(acme,"partner")
65tail = ABAC.Role(globotron)
66attr=ABAC.Attribute(head, 1800)
67attr.attribute_add_tail(tail)
68attr.attribute_bake()
69attr.attribute_write_cert("Acme_partner__Globotron_attr.der")
70ctxt.load_attribute_file("Acme_partner__Globotron_attr.der")
71print attr.string() 
72print attr.typed_string()
73print "\n"
74
75#################################################
76# [keyid:Globotron].role:expriment_create
77#           <- [keyid:Globotron].role:admin.role:power_user
78head = ABAC.Role(acme,"experiment_create")
79tail = ABAC.Role(globotron,"admin","power_user")
80attr=ABAC.Attribute(head, 1800)
81attr.attribute_add_tail(tail)
82attr.attribute_bake()
83attr.attribute_write_cert("Globotron_experiment_create__Globotron_admin_power_user_attr.der")
84ctxt.load_attribute_file("Globotron_experiment_create__Globotron_admin_power_user_attr.der")
85print attr.string() 
86print attr.typed_string()
87print "\n"
88
89#################################################
90# [keyid:Globotron].role:admin <- [keyid:Alice]
91head = ABAC.Role(globotron,"admin")
92tail = ABAC.Role(alice)
93attr=ABAC.Attribute(head, 1800)
94attr.attribute_add_tail(tail)
95attr.attribute_bake()
96attr.attribute_write_cert("Globotron_admin__Alice_attr.der")
97ctxt.load_attribute_file("Globotron_admin__Alice_attr.der")
98print attr.string() 
99print attr.typed_string()
100print "\n"
101
102#################################################
103# [keyid:Alice].role:power_user <- [keyid:Bob]
104head = ABAC.Role(alice,"power_user")
105tail = ABAC.Role(bob)
106attr=ABAC.Attribute(head, 1800)
107attr.attribute_add_tail(tail)
108attr.attribute_bake()
109attr.attribute_write_cert("Alice_power_user__Bob_attr.der")
110ctxt.load_attribute_file("Alice_power_user__Bob_attr.der")
111print attr.string() 
112print attr.typed_string()
113print "\n"
114
115ctxt.dump_yap_db()
116##
Note: See TracBrowser for help on using the repository browser.