dissect.database 1.1.dev13__tar.gz → 1.1.dev15__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dissect_database-1.1.dev13/dissect.database.egg-info → dissect_database-1.1.dev15}/PKG-INFO +1 -1
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/object.py +5 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/top.py +5 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/encryption/sqlcipher/sqlcipher.py +1 -1
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/sqlite3.py +6 -3
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/wal.py +1 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15/dissect.database.egg-info}/PKG-INFO +1 -1
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_wal.py +37 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/COPYRIGHT +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/LICENSE +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/MANIFEST.in +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/README.md +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/c_db.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/c_db.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/db.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/c_rpm.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/c_rpm.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/rpm.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/btree.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/c_ese.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/c_ese.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/compression.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/cursor.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ese.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/exception.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/index.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/lcmapstring.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_ds.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_ds.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_pek.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_pek.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_sd.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_sd.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/database.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/ntds.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/applicationsettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/attributeschema.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/builtindomain.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/certificationauthority.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/classschema.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/classstore.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/computer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/configuration.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/container.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/controlaccessright.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/crldistributionpoint.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/crossref.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/crossrefcontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/dfsconfiguration.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/displayspecifier.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/dmd.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/dnsnode.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/dnszone.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/domain.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/domaindns.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/domainpolicy.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/dsuisettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/filelinktracking.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/foreignsecurityprincipal.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/group.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/grouppolicycontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/infrastructureupdate.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/intersitetransport.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/intersitetransportcontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ipsecbase.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ipsecfilter.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ipsecisakmppolicy.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ipsecnegotiationpolicy.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ipsecnfa.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ipsecpolicy.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/leaf.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/linktrackobjectmovetable.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/linktrackvolumetable.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/locality.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/lostandfound.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msauthz_centralaccesspolicies.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msauthz_centralaccessrules.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_content.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_contentset.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_globalsettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_localsettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_member.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_replicationgroup.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_subscriber.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_subscription.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdfsr_topology.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msdns_serversettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_authnpolicies.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_authnpolicysilos.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_claimstransformationpolicies.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_claimtype.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_claimtypepropertybase.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_claimtypes.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_optionalfeature.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_passwordsettingscontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_quotacontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_resourceproperties.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_resourceproperty.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_resourcepropertylist.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_shadowprincipalcontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msds_valuetype.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msimaging_psps.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/mskds_provserverconfiguration.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msmqenterprisesettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/mspki_enterpriseoid.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/mspki_privatekeyrecoveryagent.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/msspp_activationobjectscontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/mstpm_informationobjectscontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ntdsconnection.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ntdsdsa.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ntdsservice.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ntdssitesettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ntfrssettings.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/organizationalperson.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/organizationalunit.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/person.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/physicallocation.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/pkicertificatetemplate.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/pkienrollmentservice.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/querypolicy.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ridmanager.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/ridset.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/rpccontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/rrasadministrationdictionary.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/samserver.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/secret.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/securityobject.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/server.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/serverscontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/site.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/sitelink.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/sitescontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/subnetcontainer.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/subschema.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/trusteddomain.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/user.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/pek.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/query.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/schema.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/sd.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/tools/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/tools/ntds.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/util.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/page.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/record.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/sorting_table.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/table.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/certlog.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/impacket.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/sru.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/ual.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/util.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/exception.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/c_sqlite3.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/c_sqlite3.pyi +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/encryption/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/encryption/sqlcipher/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/encryption/sqlcipher/exception.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/exception.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/util.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/SOURCES.txt +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/dependency_links.txt +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/entry_points.txt +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/requires.txt +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/top_level.txt +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/pyproject.toml +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/setup.cfg +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_docs/Makefile +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_docs/conf.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_docs/index.rst +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_tools/sqlite3/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_tools/sqlite3/generate_sqlite.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_util.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/bsd/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/bsd/conftest.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/bsd/test_db.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/bsd/test_rpm.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/conftest.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/conftest.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/conftest.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_benchmark.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_ntds.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_pek.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_query.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_schema.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_sd.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/ntds/test_util.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/test_cursor.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/test_ese.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/test_index.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/test_page.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/test_record.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/test_table.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/tools/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/tools/test_certlog.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/tools/test_sru.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/ese/tools/test_ual.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/__init__.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/conftest.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_default_values.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_row.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_sqlcipher.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_sqlite3.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_util.py +0 -0
- {dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tox.ini +0 -0
{dissect_database-1.1.dev13/dissect.database.egg-info → dissect_database-1.1.dev15}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.database
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.dev15
|
|
4
4
|
Summary: A Dissect module implementing parsers for various database formats, including Berkeley DB, Microsofts Extensible Storage Engine (ESE) and SQLite3
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -147,6 +147,11 @@ class Object:
|
|
|
147
147
|
"""Return the object's name."""
|
|
148
148
|
return self.get("name")
|
|
149
149
|
|
|
150
|
+
@property
|
|
151
|
+
def cn(self) -> str | None:
|
|
152
|
+
"""Return the object's Common Name (CN)."""
|
|
153
|
+
return self.get("cn")
|
|
154
|
+
|
|
150
155
|
@property
|
|
151
156
|
def object_category(self) -> str | None:
|
|
152
157
|
"""Return the object's objectCategory."""
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/sqlite3.py
RENAMED
|
@@ -129,10 +129,13 @@ class SQLite3:
|
|
|
129
129
|
else:
|
|
130
130
|
self.checkpoint = checkpoint
|
|
131
131
|
|
|
132
|
+
# Determine the highest page count we have encountered while parsing the SQLite3 header and optionally WAL.
|
|
133
|
+
self.page_count = max(self.header.page_count, self.wal.highest_page_num) if self.wal else self.header.page_count
|
|
134
|
+
|
|
132
135
|
self.page = lru_cache(256)(self.page)
|
|
133
136
|
|
|
134
137
|
def __repr__(self) -> str:
|
|
135
|
-
return f"<SQLite3 path={self.path
|
|
138
|
+
return f"<SQLite3 path={self.path} fh={self.fh} wal={self.wal} checkpoint={bool(self.checkpoint)} pages={self.page_count}>" # noqa: E501
|
|
136
139
|
|
|
137
140
|
def __enter__(self) -> Self:
|
|
138
141
|
"""Return ``self`` upon entering the runtime context."""
|
|
@@ -202,7 +205,7 @@ class SQLite3:
|
|
|
202
205
|
"""
|
|
203
206
|
# Only throw an out of bounds exception if the header contains a page_count.
|
|
204
207
|
# Some old versions of SQLite3 do not set/update the page_count correctly.
|
|
205
|
-
if (num < 1 or num > self.
|
|
208
|
+
if (num < 1 or num > self.page_count) and self.page_count > 0:
|
|
206
209
|
raise InvalidPageNumber("Page number exceeds boundaries")
|
|
207
210
|
|
|
208
211
|
data = None
|
|
@@ -235,7 +238,7 @@ class SQLite3:
|
|
|
235
238
|
return Page(self, num)
|
|
236
239
|
|
|
237
240
|
def pages(self) -> Iterator[Page]:
|
|
238
|
-
for i in range(self.
|
|
241
|
+
for i in range(self.page_count):
|
|
239
242
|
yield self.page(i + 1)
|
|
240
243
|
|
|
241
244
|
def cells(self) -> Iterator[Cell]:
|
|
@@ -39,6 +39,7 @@ class WAL:
|
|
|
39
39
|
raise InvalidDatabase("Invalid WAL header magic")
|
|
40
40
|
|
|
41
41
|
self.checksum_endian = "<" if self.header.magic == WAL_HEADER_MAGIC_LE else ">"
|
|
42
|
+
self.highest_page_num = max(fr.page_number for commit in self.commits for fr in commit.frames if fr.valid)
|
|
42
43
|
|
|
43
44
|
self.frame = lru_cache(1024)(self.frame)
|
|
44
45
|
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15/dissect.database.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dissect.database
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.dev15
|
|
4
4
|
Summary: A Dissect module implementing parsers for various database formats, including Berkeley DB, Microsofts Extensible Storage Engine (ESE) and SQLite3
|
|
5
5
|
Author-email: Dissect Team <dissect@fox-it.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -5,6 +5,7 @@ from typing import TYPE_CHECKING
|
|
|
5
5
|
import pytest
|
|
6
6
|
|
|
7
7
|
from dissect.database.sqlite3 import sqlite3
|
|
8
|
+
from tests._util import absolute_path
|
|
8
9
|
|
|
9
10
|
if TYPE_CHECKING:
|
|
10
11
|
from pathlib import Path
|
|
@@ -162,3 +163,39 @@ def _assert_checkpoint_3(s: sqlite3.SQLite3) -> None:
|
|
|
162
163
|
assert rows[9].id == 11
|
|
163
164
|
assert rows[9].name == "second checkpoint"
|
|
164
165
|
assert rows[9].value == 101
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
def test_wal_page_count() -> None:
|
|
169
|
+
"""Test if we count the page numbers in the SQLite3 and WAL correctly.
|
|
170
|
+
|
|
171
|
+
Test data generated using:
|
|
172
|
+
|
|
173
|
+
$ sqlite3 tests/_data/sqlite3/page_count.db
|
|
174
|
+
SQLite version 3.45.1 2024-01-30 16:01:20
|
|
175
|
+
Enter ".help" for usage hints.
|
|
176
|
+
sqlite> PRAGMA journal_mode = WAL;
|
|
177
|
+
wal
|
|
178
|
+
sqlite> CREATE TABLE t1 (a, b);
|
|
179
|
+
sqlite> .quit # commits wal
|
|
180
|
+
|
|
181
|
+
$ python
|
|
182
|
+
>>> import sqlite3
|
|
183
|
+
>>> con = sqlite3.connect("tests/_data/sqlite3/page_count.db")
|
|
184
|
+
... cur = con.cursor()
|
|
185
|
+
>>> cur.execute("INSERT INTO t1 VALUES (1, ?)", ("A" * 8192,))
|
|
186
|
+
>>> con.commit()
|
|
187
|
+
# Copy page_count.db* files before closing
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
db = sqlite3.SQLite3(absolute_path("_data/sqlite3/page_count.db"))
|
|
191
|
+
table = db.table("t1")
|
|
192
|
+
assert table.sql == "CREATE TABLE t1 (a, b)"
|
|
193
|
+
|
|
194
|
+
row = next(table.rows())
|
|
195
|
+
assert row.a == 1
|
|
196
|
+
assert row.b == "A" * 8192
|
|
197
|
+
|
|
198
|
+
assert db.wal
|
|
199
|
+
assert db.wal.highest_page_num == 4
|
|
200
|
+
assert db.header.page_count == 2
|
|
201
|
+
assert db.page_count == 4
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/__init__.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/c_rpm.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/bsd/tools/c_rpm.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/compression.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/lcmapstring.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_ds.pyi
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_pek.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_pek.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/c_sd.pyi
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/database.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/dmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/group.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/leaf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/site.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/objects/user.py
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/query.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/ntds/tools/ntds.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/sorting_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/__init__.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/certlog.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/ese/tools/impacket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/__init__.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/c_sqlite3.py
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/c_sqlite3.pyi
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect/database/sqlite3/exception.py
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/requires.txt
RENAMED
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/dissect.database.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/_tools/sqlite3/generate_sqlite.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dissect_database-1.1.dev13 → dissect_database-1.1.dev15}/tests/sqlite3/test_default_values.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|