Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.49 KB | None | 0 0
  1. import base64
  2. import hmac
  3. import hashlib
  4. import uuid
  5.  
  6. item = {
  7.     "category":"001",
  8.     "updated":1425584703,
  9.     "k":"YYejkBdcUYY9tfJ9MtODMEwMohhZE+jvIn9\/RFpeKVvUYUGVV5Prnz9UzT8RBI3SNQbE2jzMOg706yYq3He9GN+Lwdd6c8yuxFAZv39J1nkE2U9jK4j7+L0BWg7y2gxeFkR6Itq70bsoEzXzOgnjXw==",
  10.     "tx":1472822014,
  11.     "hmac":"lxvNh6VPmrPBLoBAK1hC1W43i04oNUb9Nl1zQFKbRYs=",
  12.     "uuid":"0E8D7507A1C1449D8134787D638E849A",
  13.     "d":"b3BkYXRhMDGdAQAAAAAAAN8cAqBjffx0NbSIUz6AU3bwpXtx8Gqwp\/7Ygc6SfUyWB+wNkgdsoLXxo2yEjoZzTJ+KnPW7xCT22\/hlUqpTkO93JAzhVk1Apnnt2Ax7ESweIdzDNsflrcsdeQuVsPJujv61wD+5vWiBhjdmn5LnIOv3IeSp+uQahL6+elhUe2AErIJ3k5mRDAGGObKGn\/bFHOUvPAlMnQkBZ\/lJeXtba0TAiFIaXbzXquIWdH\/LgzcL1OJe+9Amw20c9WtMKKFl+EPiEEBqwEJ5F7ISpX+B4kdLp6SHJ\/NfJEDbkEC4HO4ICWaLfzx7nsB4mGmI8jkebwM2Bnjzl2M12zhlGvVZ5Cc0hF\/pEfAc\/Lsf15A2zz0hKqklz6mBYYcNu\/gSI+kvdEdRkmY73iBxJv6iIUiZIa1mQ7vuVxokFQ3Lc7wPcqgVn3v7T13E6Y65q0RskiwPvaP0B2msGpo2\/LUbEWtE0d0SuMmmZgBysVPb95Z+QSiAbPxoEXjUYTdj4qv9VxrzMb1LdUoMYIpR6ZEWDjhO3Gx0CPsr2TFV3Qkl\/oqPGHvHuw4xjQmx\/cQpFWcI+Eci7P4WMgTsS1i+lTYmNllvvLOEWVvXL6hERSmXkCBxRZ4V",
  14.     "created":1425583737,
  15.     "o":"b3BkYXRhMDE1AQAAAAAAAAfN4fc51pLMqc4jJnzJA700P0fLL7FL4SoPN6l1CL00Eimu5+Qdu7P3ghuBJWRhCyR12IDYIk6Oaft+AStbGAXKYrQ38oMvwGXcxtgPh0i6GSXOCZ9tn0YEtmYPmdnBSLj9yv\/f+OOG3SZGb3hV8q80YoBQDrPUD2rrR0jwMG5DQwjSX5F2XZ+ImtNIGuDliCBjdxtwtMWyck0TVrcrNGIcBjkJd2wRrjfWx8IDZV992SIo35h\/M++Q3W+0z8+XDxIvucx05l+m4GT7OukZtatd8bCJAXNphUGSuRlZNdfhyQPPtKHZcqwNbJZpoqhurEpHkXLMpOdm9PwwqLBbw0rJwqUrT8rhyHqom04gTB5s4K6P4+t3oYoXA3EFKLT9G0OkCotLoBsKWEBb\/DGPcynL2gDh+m3DqbXLtgzNX15c8EEtDOldS8Iu3DUXapmShYk3ga5uHw9bZ+uB9CtmSZSl2MV6WuSDr0vjeR\/v19ja"
  16. }
  17.  
  18. if __name__ == '__main__':
  19.     overview_mac_key = bytes([154, 92, 62, 117, 233, 10, 55, 169, 13, 242, 217, 29, 240, 24, 163, 77, 152, 192, 155, 231, 92, 22, 166, 27, 151, 200, 69, 214, 219, 22, 111, 250])
  20.     h = hmac.new(overview_mac_key, digestmod=hashlib.sha256)
  21.     for k in sorted(item.keys()):
  22.         if k == 'hmac':
  23.             continue
  24.         h.update(bytearray(k, 'utf8'))
  25.         v = item[k]
  26.         if k in ['k', 'd', 'o']:
  27.             v = base64.b64decode(v)
  28.         elif k in ['tx', 'created', 'updated']:
  29.             v = v.to_bytes(4, byteorder='little')
  30.         elif k == 'uuid':
  31.             v = uuid.UUID(v).bytes
  32.         else:
  33.             v = bytearray(v, 'utf8')
  34.         h.update(v)
  35.         print("{}: {}".format(k, v))
  36.  
  37.     got = base64.b64encode(h.digest())
  38.     expected = item['hmac']
  39.     print('expected: {}\ngot: {}'.format(expected, got))
  40.     assert(got == expected)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement