| 547 | |
| 548 | |
| 549 | class DPAPI_BLOB(Structure): |
| 550 | structure = ( |
| 551 | ('Version', '<L=0'), |
| 552 | ('GuidCredential', "16s=b"""), |
| 553 | ('MasterKeyVersion', '<L=0'), |
| 554 | ('GuidMasterKey', "16s=b"""), |
| 555 | ('Flags', '<L=0'), |
| 556 | |
| 557 | ('DescriptionLen', '<L=0'), |
| 558 | ('_Description', '_-Description', 'self["DescriptionLen"]'), |
| 559 | ('Description', ':'), |
| 560 | |
| 561 | ('CryptAlgo', '<L=0'), |
| 562 | ('CryptAlgoLen', '<L=0'), |
| 563 | |
| 564 | ('SaltLen', '<L=0'), |
| 565 | ('_Salt', '_-Salt', 'self["SaltLen"]'), |
| 566 | ('Salt', ':'), |
| 567 | |
| 568 | ('HMacKeyLen', '<L=0'), |
| 569 | ('_HMacKey', '_-HMacKey', 'self["HMacKeyLen"]'), |
| 570 | ('HMacKey', ':'), |
| 571 | |
| 572 | ('HashAlgo', '<L=0'), |
| 573 | ('HashAlgoLen', '<L=0'), |
| 574 | |
| 575 | ('HMac', '<L=0'), |
| 576 | ('_HMac', '_-HMac', 'self["HMac"]'), |
| 577 | ('HMac', ':'), |
| 578 | |
| 579 | ('DataLen', '<L=0'), |
| 580 | ('_Data', '_-Data', 'self["DataLen"]'), |
| 581 | ('Data', ':'), |
| 582 | |
| 583 | ('SignLen', '<L=0'), |
| 584 | ('_Sign', '_-Sign', 'self["SignLen"]'), |
| 585 | ('Sign', ':'), |
| 586 | |
| 587 | ) |
| 588 | |
| 589 | def dump(self): |
| 590 | print("[BLOB]") |
| 591 | print("Version : %8x (%d)" % (self['Version'], self['Version'])) |
| 592 | print("Guid Credential : %s" % bin_to_string(self['GuidCredential'])) |
| 593 | print("MasterKeyVersion : %8x (%d)" % (self['MasterKeyVersion'], self['MasterKeyVersion'])) |
| 594 | print("Guid MasterKey : %s" % bin_to_string(self['GuidMasterKey'])) |
| 595 | print("Flags : %8x (%s)" % (self['Flags'], getFlags(FLAGS, self['Flags']))) |
| 596 | print("Description : %s" % (self['Description'].decode('utf-16le'))) |
| 597 | print("CryptAlgo : %.8x (%d) (%s)" % (self['CryptAlgo'], self['CryptAlgo'], ALGORITHMS(self['CryptAlgo']).name)) |
| 598 | print("Salt : %s" % (hexlify(self['Salt']))) |
| 599 | print("HMacKey : %s" % (hexlify(self['HMacKey']))) |
| 600 | print("HashAlgo : %.8x (%d) (%s)" % (self['HashAlgo'], self['HashAlgo'], ALGORITHMS(self['HashAlgo']).name)) |
| 601 | print("HMac : %s" % (hexlify(self['HMac']))) |
| 602 | print("Data : %s" % (hexlify(self['Data']))) |
| 603 | print("Sign : %s" % (hexlify(self['Sign']))) |
| 604 | print() |
| 605 | |
| 606 |
no outgoing calls
searching dependent graphs…