|
Lines 48-53
from samba.ndr import ndr_print
Link Here
|
| 48 |
from datetime import datetime |
48 |
from datetime import datetime |
| 49 |
|
49 |
|
| 50 |
context = None |
50 |
context = None |
|
|
51 |
permitted_enctypes = [] |
| 51 |
|
52 |
|
| 52 |
keytypes = { |
53 |
keytypes = { |
| 53 |
1: 'des_crc', |
54 |
1: 'des_crc', |
|
Lines 74-83
def decode_unicodePwd(value, kvno=0):
Link Here
|
| 74 |
|
75 |
|
| 75 |
|
76 |
|
| 76 |
def decode_krb5Key(value): |
77 |
def decode_krb5Key(value): |
|
|
78 |
global context |
| 79 |
global permitted_enctypes |
| 80 |
if not context: |
| 81 |
context = heimdal.context() |
| 82 |
if not permitted_enctypes: |
| 83 |
for enc in context.get_permitted_enctypes(): |
| 84 |
permitted_enctypes.append(enc.toint()) |
| 77 |
k = binascii.a2b_base64(value) |
85 |
k = binascii.a2b_base64(value) |
| 78 |
(keyblock, salt, kvno) = heimdal.asn1_decode_key(k) |
86 |
(keyblock, salt, kvno) = heimdal.asn1_decode_key(k) |
| 79 |
enctype = keyblock.keytype() |
87 |
enctype = keyblock.keytype() |
| 80 |
enctype_id = enctype.toint() |
88 |
enctype_id = enctype.toint() |
|
|
89 |
if enctype_id not in permitted_enctypes: |
| 90 |
print "#\tSKIPPING ENC type %s, not support by heimdal" % enctype_id |
| 91 |
return |
| 81 |
print "#\tkrb5_keytype: %s (%d)" % (enctype, enctype_id) |
92 |
print "#\tkrb5_keytype: %s (%d)" % (enctype, enctype_id) |
| 82 |
key_data = keyblock.keyvalue() |
93 |
key_data = keyblock.keyvalue() |
| 83 |
print "#\tkeyblock: ", binascii.b2a_base64(key_data).strip() |
94 |
print "#\tkeyblock: ", binascii.b2a_base64(key_data).strip() |