{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":752245170,"defaultBranch":"main","name":"unlock_excel","ownerLogin":"jmacadie","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-02-03T13:16:59.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1902025?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1709492020.0","currentOid":""},"activityList":{"items":[{"before":"2d207503048a386bf0b1d93622bda695240f1cc2","after":"06ff5e115fbb1f1a27e2c7558bf80c21820ece6e","ref":"refs/heads/main","pushedAt":"2024-03-05T07:19:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Version bump","shortMessageHtmlLink":"Version bump"}},{"before":"eb91ea478a3ac4a798a4c75140234fc14f36f9eb","after":"2d207503048a386bf0b1d93622bda695240f1cc2","ref":"refs/heads/main","pushedAt":"2024-03-04T15:01:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add documentation for the public facing parts of the library","shortMessageHtmlLink":"Add documentation for the public facing parts of the library"}},{"before":"20c0d09cb8c33d16c91175f0a023046ef0b16928","after":"eb91ea478a3ac4a798a4c75140234fc14f36f9eb","ref":"refs/heads/main","pushedAt":"2024-03-03T18:53:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Version Bump\n\nNo functionality change but finally got decent testing in, so wanted to\nrecord this","shortMessageHtmlLink":"Version Bump"}},{"before":"3ee522cc3e2cf0a53530e88359ce5c4d15560dad","after":"20c0d09cb8c33d16c91175f0a023046ef0b16928","ref":"refs/heads/main","pushedAt":"2024-03-03T18:45:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Integration tests for remove fuction","shortMessageHtmlLink":"Integration tests for remove fuction"}},{"before":"a5905687215bc9914dcd5017ac7921d35cfd604e","after":"3ee522cc3e2cf0a53530e88359ce5c4d15560dad","ref":"refs/heads/main","pushedAt":"2024-03-03T16:16:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add some integration tests","shortMessageHtmlLink":"Add some integration tests"}},{"before":"25157643c5ce34e55cd6faa90f1db5ff1477353d","after":"a5905687215bc9914dcd5017ac7921d35cfd604e","ref":"refs/heads/main","pushedAt":"2024-03-03T14:22:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Remove Data type. It wasn't doing anything worthwhile","shortMessageHtmlLink":"Remove Data type. It wasn't doing anything worthwhile"}},{"before":"58173b9e8fe1993f8ebe4afa640ba6bbaf3fcb73","after":"25157643c5ce34e55cd6faa90f1db5ff1477353d","ref":"refs/heads/main","pushedAt":"2024-03-01T19:32:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Clean up","shortMessageHtmlLink":"Clean up"}},{"before":"548a71071c0ffd1d96e37a8ca3d039282142ef35","after":"58173b9e8fe1993f8ebe4afa640ba6bbaf3fcb73","ref":"refs/heads/main","pushedAt":"2024-03-01T19:10:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Version bump","shortMessageHtmlLink":"Version bump"}},{"before":"9a7f059f769753735a75ee5f9c4c465724471666","after":"548a71071c0ffd1d96e37a8ca3d039282142ef35","ref":"refs/heads/main","pushedAt":"2024-03-01T19:03:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Use Nom\n\nA fairly large rewrite to fully parse the Project stream, using nom to\ndo the parsing.\n\nHave to say that nom was an absolute joy to use. I've not had the\npleasure before","shortMessageHtmlLink":"Use Nom"}},{"before":"bdb6945de65953807ffea8ed103d170e6bf77aec","after":"9a7f059f769753735a75ee5f9c4c465724471666","ref":"refs/heads/main","pushedAt":"2024-02-23T16:46:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Remove Deref trait\n\nI shouldn't have had it on the Data type. Have removed it by providing\nan into_inner method to consume the type and return the inner Vec","shortMessageHtmlLink":"Remove Deref trait"}},{"before":"2acbc857fd640957d4b4a293f1a92f02845fbcfa","after":"bdb6945de65953807ffea8ed103d170e6bf77aec","ref":"refs/heads/main","pushedAt":"2024-02-23T16:13:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Password hash as algorithm module\n\nMigrated the password hashing over to a new algorithms module. This\nmirrors how it is set out in the specification.\n\nIn the process took the opportunity to write proper unit tests","shortMessageHtmlLink":"Password hash as algorithm module"}},{"before":"cdc495341b0b65f543596ec9a734c066228e37b5","after":"2acbc857fd640957d4b4a293f1a92f02845fbcfa","ref":"refs/heads/main","pushedAt":"2024-02-19T09:08:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Finish VBA encryption module\n\nAdded in all the tests I meant to & refactored a few things that weren't\nright. Most important of these was picking up a bug, where we needed to\ndo a wrapping_add in the encryption / decryption loop.\n\nThe project key is meant to be a checksum on the Project CLSID, so we\ncould add another method to accept that and encode it properly","shortMessageHtmlLink":"Finish VBA encryption module"}},{"before":"8cffe0a8740f29dfd5c329ddb320134dfdf2978a","after":"cdc495341b0b65f543596ec9a734c066228e37b5","ref":"refs/heads/main","pushedAt":"2024-02-18T17:18:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Move data encryption\n\nOn reflection, all the interpretation of the vba file stuff ought to be\nin a separate module that can parse it. I should then be able to test\nthe code, something I've done none of so far!\n\nThis is a first pass on this, moving the VBA encryption algorithms to\ntheir own module. I have also started testing them, although more to do","shortMessageHtmlLink":"Move data encryption"}},{"before":"7c47e54bc4f304cbf4548d6b78e870e6daeb2370","after":"8cffe0a8740f29dfd5c329ddb320134dfdf2978a","ref":"refs/heads/main","pushedAt":"2024-02-16T18:26:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Update visibility","shortMessageHtmlLink":"Update visibility"}},{"before":"73bd6167ec7a03d36f0a83dd2a69f4bf818d46e0","after":"7c47e54bc4f304cbf4548d6b78e870e6daeb2370","ref":"refs/heads/main","pushedAt":"2024-02-16T17:10:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Refactor Main\n\nMoved the logic out of main and into the read and remove modules","shortMessageHtmlLink":"Refactor Main"}},{"before":"910f9534bfdde65ce891453f4b3d7b8cf52763d2","after":"73bd6167ec7a03d36f0a83dd2a69f4bf818d46e0","ref":"refs/heads/main","pushedAt":"2024-02-15T18:44:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Clippy fixes","shortMessageHtmlLink":"Clippy fixes"}},{"before":"2a8c7ac799a0d588374587684fdd181a253f31af","after":"910f9534bfdde65ce891453f4b3d7b8cf52763d2","ref":"refs/heads/main","pushedAt":"2024-02-15T15:50:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Added credits and roadmap to readme","shortMessageHtmlLink":"Added credits and roadmap to readme"}},{"before":"d7973205bd8555c3ca4e40eebaf925ce22db968a","after":"2a8c7ac799a0d588374587684fdd181a253f31af","ref":"refs/heads/main","pushedAt":"2024-02-15T15:21:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add required fields to Cargo.toml","shortMessageHtmlLink":"Add required fields to Cargo.toml"}},{"before":"94200adbe523ef2b55da3762dfeb11c06dd62914","after":"d7973205bd8555c3ca4e40eebaf925ce22db968a","ref":"refs/heads/main","pushedAt":"2024-02-15T12:05:41.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add a readme","shortMessageHtmlLink":"Add a readme"}},{"before":"ca6002a3efbe0b3329a27ee9e3c100ca74572c07","after":"94200adbe523ef2b55da3762dfeb11c06dd62914","ref":"refs/heads/main","pushedAt":"2024-02-15T11:15:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add remove\n\nApplication can now remove the password protection on VBA projects,\nwithout knowing what the password was","shortMessageHtmlLink":"Add remove"}},{"before":"4f7c1657caf25e920bc853728a673ddcd7a92736","after":"ca6002a3efbe0b3329a27ee9e3c100ca74572c07","ref":"refs/heads/main","pushedAt":"2024-02-13T09:50:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Refactor main\n\nRemove the common code that figures out the file type to separate\nfunction. Keeps main a bit cleaner","shortMessageHtmlLink":"Refactor main"}},{"before":"2216f53b8676e1cf1449a914efe7116be2c0ec4c","after":"4f7c1657caf25e920bc853728a673ddcd7a92736","ref":"refs/heads/main","pushedAt":"2024-02-13T08:14:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add support for xls files\n\nStill read only but have added the functionality to tell between the\nExcel file types and read the VBA protection on xls files","shortMessageHtmlLink":"Add support for xls files"}},{"before":"b4d013f6d33ae79dfe0342eed1ec44dc8c406098","after":"2216f53b8676e1cf1449a914efe7116be2c0ec4c","ref":"refs/heads/main","pushedAt":"2024-02-09T18:09:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Add decode\n\nUses a 1.7m password list to try to decode the hashed password. If the\npassword is on the list we'll find it!","shortMessageHtmlLink":"Add decode"}},{"before":"b85199057901b36e4119635515cbfaa266dfd774","after":"b4d013f6d33ae79dfe0342eed1ec44dc8c406098","ref":"refs/heads/main","pushedAt":"2024-02-09T09:23:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Cleaner error handling in main\n\nI was trying to use std::process::exit but it seems easier just to pass\nout a unit Unlock result from main instead","shortMessageHtmlLink":"Cleaner error handling in main"}},{"before":"623251433a8e8b3b4b3f8e65c4c9a13fddd4b610","after":"b85199057901b36e4119635515cbfaa266dfd774","ref":"refs/heads/main","pushedAt":"2024-02-09T08:42:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Give it the clap\n\nAdded clap to polish up the command line experience\n\nI also moved a couple of the hard coded strings into the consts module","shortMessageHtmlLink":"Give it the clap"}},{"before":"ee64338d820fca9c643e7cdda43fbe527eed7583","after":"623251433a8e8b3b4b3f8e65c4c9a13fddd4b610","ref":"refs/heads/main","pushedAt":"2024-02-06T22:42:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Project structure\n\nMoved things about a bit for better separation of concern. Should make\nadding the next functionality easier to manage","shortMessageHtmlLink":"Project structure"}},{"before":"cf11e2eca9b6957b6a52ff4be02660a19d0cf71d","after":"ee64338d820fca9c643e7cdda43fbe527eed7583","ref":"refs/heads/main","pushedAt":"2024-02-05T08:16:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Basic Reader\n\nProgram will:\n * unzip an xlsb or xlsm file\n * load the vbaProject.bin file from within the archive as a CFB\n (Compound Binary File)\n * Search for the PROJECT stream\n * Decode the three fields that relate to the VBA being locked\n * Print them to the command line","shortMessageHtmlLink":"Basic Reader"}},{"before":null,"after":"cf11e2eca9b6957b6a52ff4be02660a19d0cf71d","ref":"refs/heads/main","pushedAt":"2024-02-03T13:17:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jmacadie","name":"James MacAdie","path":"/jmacadie","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1902025?s=80&v=4"},"commit":{"message":"Initial Commit","shortMessageHtmlLink":"Initial Commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEDIhqFQA","startCursor":null,"endCursor":null}},"title":"Activity ยท jmacadie/unlock_excel"}