[80a0f3f] | 1 | # This file was automatically generated by SWIG (http://www.swig.org). |
---|
| 2 | # Version 3.0.10 |
---|
| 3 | # |
---|
| 4 | # Do not make changes to this file unless you know what you are doing--modify |
---|
| 5 | # the SWIG interface file instead. |
---|
| 6 | |
---|
| 7 | package ABAC; |
---|
| 8 | use base qw(Exporter); |
---|
| 9 | use base qw(DynaLoader); |
---|
| 10 | package ABACc; |
---|
| 11 | bootstrap ABAC; |
---|
| 12 | package ABAC; |
---|
| 13 | @EXPORT = qw(); |
---|
| 14 | |
---|
| 15 | # ---------- BASE METHODS ------------- |
---|
| 16 | |
---|
| 17 | package ABAC; |
---|
| 18 | |
---|
| 19 | sub TIEHASH { |
---|
| 20 | my ($classname,$obj) = @_; |
---|
| 21 | return bless $obj, $classname; |
---|
| 22 | } |
---|
| 23 | |
---|
| 24 | sub CLEAR { } |
---|
| 25 | |
---|
| 26 | sub FIRSTKEY { } |
---|
| 27 | |
---|
| 28 | sub NEXTKEY { } |
---|
| 29 | |
---|
| 30 | sub FETCH { |
---|
| 31 | my ($self,$field) = @_; |
---|
| 32 | my $member_func = "swig_${field}_get"; |
---|
| 33 | $self->$member_func(); |
---|
| 34 | } |
---|
| 35 | |
---|
| 36 | sub STORE { |
---|
| 37 | my ($self,$field,$newval) = @_; |
---|
| 38 | my $member_func = "swig_${field}_set"; |
---|
| 39 | $self->$member_func($newval); |
---|
| 40 | } |
---|
| 41 | |
---|
| 42 | sub this { |
---|
| 43 | my $ptr = shift; |
---|
| 44 | return tied(%$ptr); |
---|
| 45 | } |
---|
| 46 | |
---|
| 47 | |
---|
| 48 | # ------- FUNCTION WRAPPERS -------- |
---|
| 49 | |
---|
| 50 | package ABAC; |
---|
| 51 | |
---|
| 52 | *SSL_keyid = *ABACc::SSL_keyid; |
---|
| 53 | *abac_chunk_free = *ABACc::abac_chunk_free; |
---|
| 54 | *abac_context_new = *ABACc::abac_context_new; |
---|
| 55 | *abac_context_dup = *ABACc::abac_context_dup; |
---|
| 56 | *abac_context_free = *ABACc::abac_context_free; |
---|
| 57 | *abac_context_load_id_file = *ABACc::abac_context_load_id_file; |
---|
| 58 | *abac_context_load_id_chunk = *ABACc::abac_context_load_id_chunk; |
---|
| 59 | *abac_context_load_id_id = *ABACc::abac_context_load_id_id; |
---|
| 60 | *abac_context_load_attribute_file = *ABACc::abac_context_load_attribute_file; |
---|
| 61 | *abac_context_load_attribute_chunk = *ABACc::abac_context_load_attribute_chunk; |
---|
| 62 | *abac_context_load_directory = *ABACc::abac_context_load_directory; |
---|
| 63 | *abac_context_query = *ABACc::abac_context_query; |
---|
| 64 | *abac_context_credentials = *ABACc::abac_context_credentials; |
---|
| 65 | *abac_context_principals = *ABACc::abac_context_principals; |
---|
| 66 | *abac_context_id_credentials_free = *ABACc::abac_context_id_credentials_free; |
---|
| 67 | *abac_context_credentials_free = *ABACc::abac_context_credentials_free; |
---|
| 68 | *abac_context_set_nickname = *ABACc::abac_context_set_nickname; |
---|
| 69 | *abac_context_expand_key = *ABACc::abac_context_expand_key; |
---|
| 70 | *abac_context_expand_nickname = *ABACc::abac_context_expand_nickname; |
---|
| 71 | *abac_context_get_keyid_map = *ABACc::abac_context_get_keyid_map; |
---|
| 72 | *abac_credential_head = *ABACc::abac_credential_head; |
---|
| 73 | *abac_credential_tail = *ABACc::abac_credential_tail; |
---|
| 74 | *abac_credential_attribute_cert = *ABACc::abac_credential_attribute_cert; |
---|
| 75 | *abac_credential_issuer_cert = *ABACc::abac_credential_issuer_cert; |
---|
| 76 | *abac_credential_dup = *ABACc::abac_credential_dup; |
---|
| 77 | *abac_credential_free = *ABACc::abac_credential_free; |
---|
| 78 | *abac_id_cert_keyid = *ABACc::abac_id_cert_keyid; |
---|
| 79 | *abac_id_cert_cn = *ABACc::abac_id_cert_cn; |
---|
| 80 | *abac_role_principal_new = *ABACc::abac_role_principal_new; |
---|
| 81 | *abac_role_role_new = *ABACc::abac_role_role_new; |
---|
| 82 | *abac_role_linking_new = *ABACc::abac_role_linking_new; |
---|
| 83 | *abac_role_free = *ABACc::abac_role_free; |
---|
| 84 | *abac_role_from_string = *ABACc::abac_role_from_string; |
---|
| 85 | *abac_role_dup = *ABACc::abac_role_dup; |
---|
| 86 | *abac_role_is_principal = *ABACc::abac_role_is_principal; |
---|
| 87 | *abac_role_is_role = *ABACc::abac_role_is_role; |
---|
| 88 | *abac_role_is_linking = *ABACc::abac_role_is_linking; |
---|
| 89 | *abac_role_is_intersection = *ABACc::abac_role_is_intersection; |
---|
| 90 | *abac_role_string = *ABACc::abac_role_string; |
---|
| 91 | *abac_role_short_string = *ABACc::abac_role_short_string; |
---|
| 92 | *abac_role_linked_role = *ABACc::abac_role_linked_role; |
---|
| 93 | *abac_role_linking_role = *ABACc::abac_role_linking_role; |
---|
| 94 | *abac_role_role_name = *ABACc::abac_role_role_name; |
---|
| 95 | *abac_role_principal = *ABACc::abac_role_principal; |
---|
| 96 | *abac_role_attr_key = *ABACc::abac_role_attr_key; |
---|
| 97 | *abac_id_from_file = *ABACc::abac_id_from_file; |
---|
| 98 | *abac_id_from_chunk = *ABACc::abac_id_from_chunk; |
---|
| 99 | *abac_id_privkey_from_file = *ABACc::abac_id_privkey_from_file; |
---|
| 100 | *abac_id_privkey_from_chunk = *ABACc::abac_id_privkey_from_chunk; |
---|
| 101 | *abac_id_generate = *ABACc::abac_id_generate; |
---|
| 102 | *abac_id_generate_with_key = *ABACc::abac_id_generate_with_key; |
---|
| 103 | *abac_id_keyid = *ABACc::abac_id_keyid; |
---|
| 104 | *abac_id_cn = *ABACc::abac_id_cn; |
---|
| 105 | *abac_id_issuer = *ABACc::abac_id_issuer; |
---|
| 106 | *abac_id_subject = *ABACc::abac_id_subject; |
---|
| 107 | *abac_id_still_valid = *ABACc::abac_id_still_valid; |
---|
| 108 | *abac_id_has_keyid = *ABACc::abac_id_has_keyid; |
---|
| 109 | *abac_id_has_privkey = *ABACc::abac_id_has_privkey; |
---|
| 110 | *abac_id_validity = *ABACc::abac_id_validity; |
---|
| 111 | *abac_id_cert_filename = *ABACc::abac_id_cert_filename; |
---|
| 112 | *abac_id_write_cert = *ABACc::abac_id_write_cert; |
---|
| 113 | *abac_id_privkey_filename = *ABACc::abac_id_privkey_filename; |
---|
| 114 | *abac_id_write_privkey = *ABACc::abac_id_write_privkey; |
---|
| 115 | *abac_id_cert_chunk = *ABACc::abac_id_cert_chunk; |
---|
| 116 | *abac_id_privkey_chunk = *ABACc::abac_id_privkey_chunk; |
---|
| 117 | *abac_id_dup = *ABACc::abac_id_dup; |
---|
| 118 | *abac_id_free = *ABACc::abac_id_free; |
---|
| 119 | *abac_attribute_create = *ABACc::abac_attribute_create; |
---|
| 120 | *abac_attribute_set_head = *ABACc::abac_attribute_set_head; |
---|
| 121 | *abac_attribute_get_head = *ABACc::abac_attribute_get_head; |
---|
| 122 | *abac_attribute_principal = *ABACc::abac_attribute_principal; |
---|
| 123 | *abac_attribute_role = *ABACc::abac_attribute_role; |
---|
| 124 | *abac_attribute_linking_role = *ABACc::abac_attribute_linking_role; |
---|
| 125 | *abac_attribute_bake = *ABACc::abac_attribute_bake; |
---|
| 126 | *abac_attribute_bake_context = *ABACc::abac_attribute_bake_context; |
---|
| 127 | *abac_attribute_baked = *ABACc::abac_attribute_baked; |
---|
| 128 | *abac_attribute_write = *ABACc::abac_attribute_write; |
---|
| 129 | *abac_attribute_write_file = *ABACc::abac_attribute_write_file; |
---|
| 130 | *abac_attribute_get_ntails = *ABACc::abac_attribute_get_ntails; |
---|
| 131 | *abac_attribute_get_tail_n = *ABACc::abac_attribute_get_tail_n; |
---|
| 132 | *abac_attribute_cert_chunk = *ABACc::abac_attribute_cert_chunk; |
---|
| 133 | *abac_attribute_free = *ABACc::abac_attribute_free; |
---|
| 134 | *abac_attribute_certs_from_file = *ABACc::abac_attribute_certs_from_file; |
---|
| 135 | *abac_attribute_certs_from_chunk = *ABACc::abac_attribute_certs_from_chunk; |
---|
| 136 | *abac_attribute_role_string = *ABACc::abac_attribute_role_string; |
---|
| 137 | *abac_attribute_issuer_id = *ABACc::abac_attribute_issuer_id; |
---|
| 138 | *abac_attribute_get_output_format = *ABACc::abac_attribute_get_output_format; |
---|
| 139 | *abac_attribute_set_output_format = *ABACc::abac_attribute_set_output_format; |
---|
| 140 | *abac_attribute_validity = *ABACc::abac_attribute_validity; |
---|
| 141 | *abac_attribute_get_keyid_map = *ABACc::abac_attribute_get_keyid_map; |
---|
| 142 | *abac_attribute_get_principal = *ABACc::abac_attribute_get_principal; |
---|
| 143 | *abac_attribute_still_valid = *ABACc::abac_attribute_still_valid; |
---|
| 144 | *abac_keyid_mapping_new = *ABACc::abac_keyid_mapping_new; |
---|
| 145 | *abac_keyid_mapping_free = *ABACc::abac_keyid_mapping_free; |
---|
| 146 | *abac_keyid_map_new = *ABACc::abac_keyid_map_new; |
---|
| 147 | *abac_keyid_map_dup = *ABACc::abac_keyid_map_dup; |
---|
| 148 | *abac_keyid_map_clone = *ABACc::abac_keyid_map_clone; |
---|
| 149 | *abac_keyid_map_free = *ABACc::abac_keyid_map_free; |
---|
| 150 | *abac_keyid_map_key_to_nickname = *ABACc::abac_keyid_map_key_to_nickname; |
---|
| 151 | *abac_keyid_map_nickname_to_key = *ABACc::abac_keyid_map_nickname_to_key; |
---|
| 152 | *abac_keyid_map_remove_keyid = *ABACc::abac_keyid_map_remove_keyid; |
---|
| 153 | *abac_keyid_map_add_nickname = *ABACc::abac_keyid_map_add_nickname; |
---|
| 154 | *abac_keyid_map_merge = *ABACc::abac_keyid_map_merge; |
---|
| 155 | *abac_keyid_map_expand_key = *ABACc::abac_keyid_map_expand_key; |
---|
| 156 | *abac_keyid_map_expand_nickname = *ABACc::abac_keyid_map_expand_nickname; |
---|
| 157 | |
---|
| 158 | ############# Class : ABAC::CredentialVector ############## |
---|
| 159 | |
---|
| 160 | package ABAC::CredentialVector; |
---|
| 161 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 162 | @ISA = qw( ABAC ); |
---|
| 163 | %OWNER = (); |
---|
| 164 | %ITERATORS = (); |
---|
| 165 | sub new { |
---|
| 166 | my $pkg = shift; |
---|
| 167 | my $self = ABACc::new_CredentialVector(@_); |
---|
| 168 | bless $self, $pkg if defined($self); |
---|
| 169 | } |
---|
| 170 | |
---|
| 171 | *size = *ABACc::CredentialVector_size; |
---|
| 172 | *empty = *ABACc::CredentialVector_empty; |
---|
| 173 | *clear = *ABACc::CredentialVector_clear; |
---|
| 174 | *push = *ABACc::CredentialVector_push; |
---|
| 175 | *get = *ABACc::CredentialVector_get; |
---|
| 176 | *set = *ABACc::CredentialVector_set; |
---|
| 177 | sub DESTROY { |
---|
| 178 | return unless $_[0]->isa('HASH'); |
---|
| 179 | my $self = tied(%{$_[0]}); |
---|
| 180 | return unless defined $self; |
---|
| 181 | delete $ITERATORS{$self}; |
---|
| 182 | if (exists $OWNER{$self}) { |
---|
| 183 | ABACc::delete_CredentialVector($self); |
---|
| 184 | delete $OWNER{$self}; |
---|
| 185 | } |
---|
| 186 | } |
---|
| 187 | |
---|
| 188 | sub DISOWN { |
---|
| 189 | my $self = shift; |
---|
| 190 | my $ptr = tied(%$self); |
---|
| 191 | delete $OWNER{$ptr}; |
---|
| 192 | } |
---|
| 193 | |
---|
| 194 | sub ACQUIRE { |
---|
| 195 | my $self = shift; |
---|
| 196 | my $ptr = tied(%$self); |
---|
| 197 | $OWNER{$ptr} = 1; |
---|
| 198 | } |
---|
| 199 | |
---|
| 200 | |
---|
| 201 | ############# Class : ABAC::abac_chunk_t ############## |
---|
| 202 | |
---|
| 203 | package ABAC::abac_chunk_t; |
---|
| 204 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 205 | @ISA = qw( ABAC ); |
---|
| 206 | %OWNER = (); |
---|
| 207 | %ITERATORS = (); |
---|
| 208 | *swig_ptr_get = *ABACc::abac_chunk_t_ptr_get; |
---|
| 209 | *swig_ptr_set = *ABACc::abac_chunk_t_ptr_set; |
---|
| 210 | *swig_len_get = *ABACc::abac_chunk_t_len_get; |
---|
| 211 | *swig_len_set = *ABACc::abac_chunk_t_len_set; |
---|
| 212 | sub new { |
---|
| 213 | my $pkg = shift; |
---|
| 214 | my $self = ABACc::new_abac_chunk_t(@_); |
---|
| 215 | bless $self, $pkg if defined($self); |
---|
| 216 | } |
---|
| 217 | |
---|
| 218 | sub DESTROY { |
---|
| 219 | return unless $_[0]->isa('HASH'); |
---|
| 220 | my $self = tied(%{$_[0]}); |
---|
| 221 | return unless defined $self; |
---|
| 222 | delete $ITERATORS{$self}; |
---|
| 223 | if (exists $OWNER{$self}) { |
---|
| 224 | ABACc::delete_abac_chunk_t($self); |
---|
| 225 | delete $OWNER{$self}; |
---|
| 226 | } |
---|
| 227 | } |
---|
| 228 | |
---|
| 229 | sub DISOWN { |
---|
| 230 | my $self = shift; |
---|
| 231 | my $ptr = tied(%$self); |
---|
| 232 | delete $OWNER{$ptr}; |
---|
| 233 | } |
---|
| 234 | |
---|
| 235 | sub ACQUIRE { |
---|
| 236 | my $self = shift; |
---|
| 237 | my $ptr = tied(%$self); |
---|
| 238 | $OWNER{$ptr} = 1; |
---|
| 239 | } |
---|
| 240 | |
---|
| 241 | |
---|
| 242 | ############# Class : ABAC::Context ############## |
---|
| 243 | |
---|
| 244 | package ABAC::Context; |
---|
| 245 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 246 | @ISA = qw( ABAC ); |
---|
| 247 | %OWNER = (); |
---|
| 248 | %ITERATORS = (); |
---|
| 249 | sub new { |
---|
| 250 | my $pkg = shift; |
---|
| 251 | my $self = ABACc::new_Context(@_); |
---|
| 252 | bless $self, $pkg if defined($self); |
---|
| 253 | } |
---|
| 254 | |
---|
| 255 | sub DESTROY { |
---|
| 256 | return unless $_[0]->isa('HASH'); |
---|
| 257 | my $self = tied(%{$_[0]}); |
---|
| 258 | return unless defined $self; |
---|
| 259 | delete $ITERATORS{$self}; |
---|
| 260 | if (exists $OWNER{$self}) { |
---|
| 261 | ABACc::delete_Context($self); |
---|
| 262 | delete $OWNER{$self}; |
---|
| 263 | } |
---|
| 264 | } |
---|
| 265 | |
---|
| 266 | *load_id_file = *ABACc::Context_load_id_file; |
---|
| 267 | *load_id_chunk = *ABACc::Context_load_id_chunk; |
---|
| 268 | *load_id_id = *ABACc::Context_load_id_id; |
---|
| 269 | *load_attribute_file = *ABACc::Context_load_attribute_file; |
---|
| 270 | *load_attribute_chunk = *ABACc::Context_load_attribute_chunk; |
---|
| 271 | *query = *ABACc::Context_query; |
---|
| 272 | *credentials = *ABACc::Context_credentials; |
---|
| 273 | *load_directory = *ABACc::Context_load_directory; |
---|
| 274 | *set_nickname = *ABACc::Context_set_nickname; |
---|
| 275 | sub DISOWN { |
---|
| 276 | my $self = shift; |
---|
| 277 | my $ptr = tied(%$self); |
---|
| 278 | delete $OWNER{$ptr}; |
---|
| 279 | } |
---|
| 280 | |
---|
| 281 | sub ACQUIRE { |
---|
| 282 | my $self = shift; |
---|
| 283 | my $ptr = tied(%$self); |
---|
| 284 | $OWNER{$ptr} = 1; |
---|
| 285 | } |
---|
| 286 | |
---|
| 287 | |
---|
| 288 | ############# Class : ABAC::Role ############## |
---|
| 289 | |
---|
| 290 | package ABAC::Role; |
---|
| 291 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 292 | @ISA = qw( ABAC ); |
---|
| 293 | %OWNER = (); |
---|
| 294 | %ITERATORS = (); |
---|
| 295 | sub new { |
---|
| 296 | my $pkg = shift; |
---|
| 297 | my $self = ABACc::new_Role(@_); |
---|
| 298 | bless $self, $pkg if defined($self); |
---|
| 299 | } |
---|
| 300 | |
---|
| 301 | sub DESTROY { |
---|
| 302 | return unless $_[0]->isa('HASH'); |
---|
| 303 | my $self = tied(%{$_[0]}); |
---|
| 304 | return unless defined $self; |
---|
| 305 | delete $ITERATORS{$self}; |
---|
| 306 | if (exists $OWNER{$self}) { |
---|
| 307 | ABACc::delete_Role($self); |
---|
| 308 | delete $OWNER{$self}; |
---|
| 309 | } |
---|
| 310 | } |
---|
| 311 | |
---|
| 312 | *is_principal = *ABACc::Role_is_principal; |
---|
| 313 | *is_role = *ABACc::Role_is_role; |
---|
| 314 | *is_linking = *ABACc::Role_is_linking; |
---|
| 315 | *string = *ABACc::Role_string; |
---|
| 316 | *short_string = *ABACc::Role_short_string; |
---|
| 317 | *linked_role = *ABACc::Role_linked_role; |
---|
| 318 | *role_name = *ABACc::Role_role_name; |
---|
| 319 | *principal = *ABACc::Role_principal; |
---|
| 320 | sub DISOWN { |
---|
| 321 | my $self = shift; |
---|
| 322 | my $ptr = tied(%$self); |
---|
| 323 | delete $OWNER{$ptr}; |
---|
| 324 | } |
---|
| 325 | |
---|
| 326 | sub ACQUIRE { |
---|
| 327 | my $self = shift; |
---|
| 328 | my $ptr = tied(%$self); |
---|
| 329 | $OWNER{$ptr} = 1; |
---|
| 330 | } |
---|
| 331 | |
---|
| 332 | |
---|
| 333 | ############# Class : ABAC::Credential ############## |
---|
| 334 | |
---|
| 335 | package ABAC::Credential; |
---|
| 336 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 337 | @ISA = qw( ABAC ); |
---|
| 338 | %OWNER = (); |
---|
| 339 | %ITERATORS = (); |
---|
| 340 | sub new { |
---|
| 341 | my $pkg = shift; |
---|
| 342 | my $self = ABACc::new_Credential(@_); |
---|
| 343 | bless $self, $pkg if defined($self); |
---|
| 344 | } |
---|
| 345 | |
---|
| 346 | sub DESTROY { |
---|
| 347 | return unless $_[0]->isa('HASH'); |
---|
| 348 | my $self = tied(%{$_[0]}); |
---|
| 349 | return unless defined $self; |
---|
| 350 | delete $ITERATORS{$self}; |
---|
| 351 | if (exists $OWNER{$self}) { |
---|
| 352 | ABACc::delete_Credential($self); |
---|
| 353 | delete $OWNER{$self}; |
---|
| 354 | } |
---|
| 355 | } |
---|
| 356 | |
---|
| 357 | *head = *ABACc::Credential_head; |
---|
| 358 | *tail = *ABACc::Credential_tail; |
---|
| 359 | *attribute_cert = *ABACc::Credential_attribute_cert; |
---|
| 360 | *issuer_cert = *ABACc::Credential_issuer_cert; |
---|
| 361 | sub DISOWN { |
---|
| 362 | my $self = shift; |
---|
| 363 | my $ptr = tied(%$self); |
---|
| 364 | delete $OWNER{$ptr}; |
---|
| 365 | } |
---|
| 366 | |
---|
| 367 | sub ACQUIRE { |
---|
| 368 | my $self = shift; |
---|
| 369 | my $ptr = tied(%$self); |
---|
| 370 | $OWNER{$ptr} = 1; |
---|
| 371 | } |
---|
| 372 | |
---|
| 373 | |
---|
| 374 | ############# Class : ABAC::ID ############## |
---|
| 375 | |
---|
| 376 | package ABAC::ID; |
---|
| 377 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 378 | @ISA = qw( ABAC ); |
---|
| 379 | %OWNER = (); |
---|
| 380 | %ITERATORS = (); |
---|
| 381 | sub DESTROY { |
---|
| 382 | return unless $_[0]->isa('HASH'); |
---|
| 383 | my $self = tied(%{$_[0]}); |
---|
| 384 | return unless defined $self; |
---|
| 385 | delete $ITERATORS{$self}; |
---|
| 386 | if (exists $OWNER{$self}) { |
---|
| 387 | ABACc::delete_ID($self); |
---|
| 388 | delete $OWNER{$self}; |
---|
| 389 | } |
---|
| 390 | } |
---|
| 391 | |
---|
| 392 | sub new_ID_chunk { |
---|
| 393 | my $pkg = shift; |
---|
| 394 | my $self = ABACc::new_ID_chunk(@_); |
---|
| 395 | bless $self, $pkg if defined($self); |
---|
| 396 | } |
---|
| 397 | |
---|
| 398 | sub new { |
---|
| 399 | my $pkg = shift; |
---|
| 400 | my $self = ABACc::new_ID(@_); |
---|
| 401 | bless $self, $pkg if defined($self); |
---|
| 402 | } |
---|
| 403 | |
---|
| 404 | *load_privkey = *ABACc::ID_load_privkey; |
---|
| 405 | *load_privkey_chunk = *ABACc::ID_load_privkey_chunk; |
---|
| 406 | *has_privkey = *ABACc::ID_has_privkey; |
---|
| 407 | *keyid = *ABACc::ID_keyid; |
---|
| 408 | *cn = *ABACc::ID_cn; |
---|
| 409 | *cert_filename = *ABACc::ID_cert_filename; |
---|
| 410 | *write_cert = *ABACc::ID_write_cert; |
---|
| 411 | *write_cert_file = *ABACc::ID_write_cert_file; |
---|
| 412 | *write_cert_name = *ABACc::ID_write_cert_name; |
---|
| 413 | *privkey_filename = *ABACc::ID_privkey_filename; |
---|
| 414 | *write_privkey = *ABACc::ID_write_privkey; |
---|
| 415 | *write_privkey_file = *ABACc::ID_write_privkey_file; |
---|
| 416 | *write_privkey_name = *ABACc::ID_write_privkey_name; |
---|
| 417 | *cert_chunk = *ABACc::ID_cert_chunk; |
---|
| 418 | *privkey_chunk = *ABACc::ID_privkey_chunk; |
---|
| 419 | sub DISOWN { |
---|
| 420 | my $self = shift; |
---|
| 421 | my $ptr = tied(%$self); |
---|
| 422 | delete $OWNER{$ptr}; |
---|
| 423 | } |
---|
| 424 | |
---|
| 425 | sub ACQUIRE { |
---|
| 426 | my $self = shift; |
---|
| 427 | my $ptr = tied(%$self); |
---|
| 428 | $OWNER{$ptr} = 1; |
---|
| 429 | } |
---|
| 430 | |
---|
| 431 | |
---|
| 432 | ############# Class : ABAC::Attribute ############## |
---|
| 433 | |
---|
| 434 | package ABAC::Attribute; |
---|
| 435 | use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
---|
| 436 | @ISA = qw( ABAC ); |
---|
| 437 | %OWNER = (); |
---|
| 438 | %ITERATORS = (); |
---|
| 439 | sub DESTROY { |
---|
| 440 | return unless $_[0]->isa('HASH'); |
---|
| 441 | my $self = tied(%{$_[0]}); |
---|
| 442 | return unless defined $self; |
---|
| 443 | delete $ITERATORS{$self}; |
---|
| 444 | if (exists $OWNER{$self}) { |
---|
| 445 | ABACc::delete_Attribute($self); |
---|
| 446 | delete $OWNER{$self}; |
---|
| 447 | } |
---|
| 448 | } |
---|
| 449 | |
---|
| 450 | sub new { |
---|
| 451 | my $pkg = shift; |
---|
| 452 | my $self = ABACc::new_Attribute(@_); |
---|
| 453 | bless $self, $pkg if defined($self); |
---|
| 454 | } |
---|
| 455 | |
---|
| 456 | *principal = *ABACc::Attribute_principal; |
---|
| 457 | *role = *ABACc::Attribute_role; |
---|
| 458 | *linking_role = *ABACc::Attribute_linking_role; |
---|
| 459 | *bake = *ABACc::Attribute_bake; |
---|
| 460 | *baked = *ABACc::Attribute_baked; |
---|
| 461 | *set_output_format = *ABACc::Attribute_set_output_format; |
---|
| 462 | *get_output_format = *ABACc::Attribute_get_output_format; |
---|
| 463 | *write = *ABACc::Attribute_write; |
---|
| 464 | *write_file = *ABACc::Attribute_write_file; |
---|
| 465 | *write_name = *ABACc::Attribute_write_name; |
---|
| 466 | *cert_chunk = *ABACc::Attribute_cert_chunk; |
---|
| 467 | sub DISOWN { |
---|
| 468 | my $self = shift; |
---|
| 469 | my $ptr = tied(%$self); |
---|
| 470 | delete $OWNER{$ptr}; |
---|
| 471 | } |
---|
| 472 | |
---|
| 473 | sub ACQUIRE { |
---|
| 474 | my $self = shift; |
---|
| 475 | my $ptr = tied(%$self); |
---|
| 476 | $OWNER{$ptr} = 1; |
---|
| 477 | } |
---|
| 478 | |
---|
| 479 | |
---|
| 480 | # ------- VARIABLE STUBS -------- |
---|
| 481 | |
---|
| 482 | package ABAC; |
---|
| 483 | |
---|
| 484 | *ABAC_RC_SUCCESS = *ABACc::ABAC_RC_SUCCESS; |
---|
| 485 | *ABAC_RC_FAILURE = *ABACc::ABAC_RC_FAILURE; |
---|
| 486 | *ABAC_CERT_SUCCESS = *ABACc::ABAC_CERT_SUCCESS; |
---|
| 487 | *ABAC_CERT_INVALID = *ABACc::ABAC_CERT_INVALID; |
---|
| 488 | *ABAC_CERT_BAD_SIG = *ABACc::ABAC_CERT_BAD_SIG; |
---|
| 489 | *ABAC_CERT_MISSING_ISSUER = *ABACc::ABAC_CERT_MISSING_ISSUER; |
---|
| 490 | *ABAC_CERT_BAD_PRINCIPAL = *ABACc::ABAC_CERT_BAD_PRINCIPAL; |
---|
| 491 | *ABAC_CERT_INVALID_ISSUER = *ABACc::ABAC_CERT_INVALID_ISSUER; |
---|
| 492 | *ABAC_CERT_SIGNER_NOKEY = *ABACc::ABAC_CERT_SIGNER_NOKEY; |
---|
| 493 | *ABAC_SUCCESS = *ABACc::ABAC_SUCCESS; |
---|
| 494 | *ABAC_FAILURE = *ABACc::ABAC_FAILURE; |
---|
| 495 | *ABAC_GENERATE_INVALID_CN = *ABACc::ABAC_GENERATE_INVALID_CN; |
---|
| 496 | *ABAC_GENERATE_INVALID_VALIDITY = *ABACc::ABAC_GENERATE_INVALID_VALIDITY; |
---|
| 497 | *ABAC_ATTRIBUTE_ISSUER_NOKEY = *ABACc::ABAC_ATTRIBUTE_ISSUER_NOKEY; |
---|
| 498 | *ABAC_ATTRIBUTE_INVALID_ROLE = *ABACc::ABAC_ATTRIBUTE_INVALID_ROLE; |
---|
| 499 | *ABAC_ATTRIBUTE_INVALID_VALIDITY = *ABACc::ABAC_ATTRIBUTE_INVALID_VALIDITY; |
---|
| 500 | *ABAC_ATTRIBUTE_INVALID_ISSUER = *ABACc::ABAC_ATTRIBUTE_INVALID_ISSUER; |
---|
| 501 | 1; |
---|