Mercurial > pihelp
annotate test.py @ 26:292cd17de2a4
merge
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Wed, 26 Jun 2013 22:00:08 +0800 |
parents | 19d8314d9fe4 |
children | 735c406b4c57 |
rev | line source |
---|---|
13
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
1 #!/Users/matt/tmp/crypto/bin/python |
9 | 2 |
3 from Crypto.Cipher import AES | |
4 import hashlib | |
5 import hmac | |
6 from binascii import hexlify, unhexlify | |
7 | |
8 # echo -n '1234567890123456' | openssl enc -aes-128-ecb -K '61616262636364646565666667676868' | hexdump -C | |
9 | |
10 # output: | |
11 #cli_key yyuuiiooddeeffqqddii, hex 7979757569696f6f646465656666717164646969 | |
12 #enc_key aabbccddeeffgghh, hex 61616262636364646565666667676868 | |
13 #data 1234567890123456, hex 31323334353637383930313233343536 | |
14 #data 1234567890123456, hex 31323334353637383930313233343536 | |
15 #enc hex 0ba302059bfc650d4491268448102119 | |
16 #hmac hex ecd858ee07a8e16575723513d2d072a7565865e4 | |
17 | |
18 | |
19 cli_key = 'yyuuiiooddeeffqqddii' | |
13
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
20 enc_key = 'aabbccddeeffgghh\0\0\0\0' |
9 | 21 indata = '1234567890123456' |
22 | |
23 print "cli_key %s, hex %s" % (cli_key, hexlify(cli_key)) | |
24 print "enc_key %s, hex %s" % (enc_key, hexlify(enc_key)) | |
25 print "data %s, hex %s" % (indata, hexlify(indata)) | |
26 | |
27 print "data %s, hex %s" % (indata, hexlify(indata)) | |
28 | |
13
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
29 a = AES.new(enc_key[:16]) |
9 | 30 enc = a.encrypt(indata) |
31 | |
32 print "enc hex %s" % hexlify(enc) | |
33 | |
13
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
34 h = hmac.new(enc_key, 'D:' + enc, hashlib.sha1).digest() |
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
35 print "enc hmac hex %s" % hexlify(h) |
9 | 36 |
13
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
37 h = hmac.new(cli_key, 'H:' + cli_key, hashlib.sha1).digest() |
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
38 print "hmac test hex %s" % hexlify(h) |
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
39 |
19d8314d9fe4
update for new data padding scheme
Matt Johnston <matt@ucc.asn.au>
parents:
9
diff
changeset
|
40 |