profile
viewpoint
David Cook divergentdave Minneapolis, MN

b-k/1040.js 30

A visual implementation of individual U.S. taxes

divergentdave/1040.js 0

A visual implementation of individual U.S. taxes

divergentdave/18f.gsa.gov 0

This repository contains 18F's website.

divergentdave/ad_mute 0

Mute audio for 30 second intervals with a hotkey

divergentdave/afl.rs 0

🐇 Fuzzing Rust code with american-fuzzy-lop

divergentdave/angr 0

A powerful and user-friendly binary analysis platform!

divergentdave/anichoochoo 0

:steam_locomotive: A script to produce animation frames of the @choochoobot movie.

divergentdave/async-std 0

Async version of the Rust standard library

push eventdivergentdave/certificate_carver

David Cook

commit sha ec3b28db8ed5defb83a620b497b8798a93d5ad1b

Update pdf commit

view details

push time in 2 days

PR opened pdf-rs/pdf

Update RustCrypto crates

This updates two RustCrypto crates and handles a breaking change due to a re-organizaton of their re-exports.

+3 -3

0 comment

2 changed files

pr created time in 2 days

create barnchdivergentdave/pdf

branch : cipher-crate

created branch time in 2 days

push eventdivergentdave/crossbeam

David Cook

commit sha f6adc4cf2e487dd0f5a44c5bb71b4f6556d40c2b

Extend sleep time in wait_group test

view details

push time in 3 days

push eventdivergentdave/miri

David Cook

commit sha 3bc8302a54653f3f92b015106a5322f7ce8e29a0

Support --test/--bin/--lib in cargo-miri

view details

David Cook

commit sha 40847abd5f2da77bce75ee12564a49b01c3588e7

Review comments

view details

Ralf Jung

commit sha 4608341ca071634b9aae2ea967f25b5cfe970e7e

add encoding_rs OOB arithmetic

view details

bors

commit sha 2be4052ab03025032a64a602c99177d5d571bba8

Auto merge of #1528 - RalfJung:readme, r=RalfJung add encoding_rs OOB arithmetic to trophy case

view details

Ralf Jung

commit sha 39e6baeb91fc720494ae8ebd6f7c2cd29a19130f

rustup

view details

bors

commit sha 13ea74549f009a1616c8ab48f84442c2bf9b1f32

Auto merge of #1530 - RalfJung:rustup, r=RalfJung rustup Another day, another `AllocRef` API change.

view details

David Cook

commit sha 64e2d3e2d0d8de0f750381ba8786fdd398c538a4

Review comments

view details

bors

commit sha c2a2e25d0b050d70d6a355f9b7545a991fc8783a

Auto merge of #1525 - divergentdave:cargo-miri-targets, r=RalfJung Support --test/--bin/--lib in cargo-miri This PR addresses a FIXME in cargo-miri, and filters the targets to be checked when any of the `--bin`, '--test`, or `--lib` flags are passed.

view details

David Cook

commit sha 5d9d75fc1f2fc87f419913db7bf8a073b04f955d

Test cargo miri target selection

view details

bors

commit sha 9123f0e01ec32103a35ab9d51122ceee5ce7bcfb

Auto merge of #1531 - divergentdave:cargo-miri-targets-test, r=RalfJung Test cargo miri target selection This is a followup to #1525, adding a few test invocations with targets specified in the cargo arguments.

view details

David Cook

commit sha 3ba7f46058db2baa7e03cbca5570a4a4c1ac832b

Move panic payload state from Machine to Thread

view details

David Cook

commit sha da2f268443bcaf889896dd3ca4e6635b9e5cc4b5

Review comments

view details

Ralf Jung

commit sha 34664623066a762235004c08d0b9a188c0d65d2a

rustup, fix test

view details

bors

commit sha 0a4ecfc22511026c20a3a245b752f80fa2d8ab28

Auto merge of #1533 - RalfJung:rustup, r=RalfJung rustup, fix test Cc https://github.com/rust-lang/rust/issues/76190

view details

David Cook

commit sha 7a2c6812b94f5a96fa3a3b16ee4fbc885fc8676c

Per-thread errno storage

view details

David Cook

commit sha a6746ad893c7f6cbcb367276534e329110e75d83

Add comment

view details

bors

commit sha c28a8eeb742d7104bc407e12212c5143439963fc

Auto merge of #1532 - divergentdave:thread-panic-payload, r=RalfJung Move panic payload state from Machine to Thread This PR moves the panic payload storage from the `Machine` state to per-thread state. Prior to this change, if one thread panicked while another was still unwinding, Miri would fail with `thread 'rustc' panicked at 'the panic runtime should avoid double-panics', src/shims/panic.rs:51:9`. I ran into this issue while prototyping a round-robin scheduler, but it's also reachable with the current scheduler and contrived programs that use blocking API calls to cause thread switching during unwinding. I wrote a test case along those lines for this change.

view details

LeSeulArtichaut

commit sha 4f2f87b2dff5b586d3130737716fcbb3d3086d57

Change `ty.kind` -> `ty.kind()`

view details

bors

commit sha 5f1182d04a161915df7b1d001ac7cc77fc7a2047

Auto merge of #1534 - LeSeulArtichaut:tys-kind, r=RalfJung Change `ty.kind` -> `ty.kind()` This fixes build failure due to rust-lang/rust#75077, cc rust-lang/rust#76337. (This is my first PR here, please tell me if anything's wrong)

view details

David Cook

commit sha 6d323e10324298a8fc7c268079c7999794525a7a

Refactor timespec parsing, improve error handling

view details

push time in 3 days

delete branch divergentdave/miri

delete branch : thread-panic-payload

delete time in 3 days

delete branch divergentdave/miri

delete branch : nanosleep

delete time in 3 days

delete branch divergentdave/miri

delete branch : cargo-miri-targets-test

delete time in 3 days

delete branch divergentdave/miri

delete branch : cargo-miri-targets

delete time in 3 days

PR opened spacejam/sled

Remove no-op #[cold] attributes

Building with a recent nightly compiler yields a couple messages of warning: attribute should be applied to a function, and warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!. In these two places, #[cold] was applied to a statement or a block, whereas the attribute is only effective when applied to a function.

I don't think there is yet a good way to provide the intended hints to the compiler on stable, though if core_intrinsics is stabilized, the likely/unlikely intrinsics would work. Moreover, the #[cold] in src/arc.rs was on a call to std::process::abort(), and I'm hopeful that LLVM is able to infer that this branch is cold, because it ends with a call to a never-returning function.

+0 -2

0 comment

2 changed files

pr created time in 6 days

create barnchdivergentdave/sled

branch : cold-attributes

created branch time in 6 days

push eventdivergentdave/sled

David Cook

commit sha 1353defb615001164a6af6b4f13d3d3a405c0b75

Add --no-self-update to rustup commands in CI Workaround for actions/virtual-environments#246

view details

Tyler Neely

commit sha 836cf440ff3e49b2be8655f8975ab296245ebad4

Remove trivial array_init dependency

view details

Tyler Neely

commit sha 4157d977bba498535fa3dd32ec9773f55e88da1d

Merge pull request #1130 from spacejam/tyler_remove_array_init Remove trivial array_init dependency

view details

Tyler Neely

commit sha 6df4f9450774ad38857f645717ca6bd5c7adac29

Cut off a second of compile time by avoiding the many impl_transactional_tuple_trees calls, which should use slices of trees instead

view details

Tyler Neely

commit sha 604a0b072c19e68c866f537f08c27ab3088091bf

Safely fail transactions that are performed on trees from different db's

view details

Tyler Neely

commit sha a5c95b8645df1425d442ae902626581be07852ba

Properly prevent tuples of trees from different db's from transacting

view details

Tyler Neely

commit sha abc32e115ffd934140896fdeb786c1bcc79fb0a4

Merge pull request #1131 from spacejam/tyler_safer_transactions safer transactions

view details

Tyler Neely

commit sha 83319435d109c07a360ad6baa7ddb4a60f582c9d

Update changelog

view details

Tyler Neely

commit sha 0fba6e00e74590fe851453ec5d6aede58663f8cf

Implement From<sled::Error> for io::Error

view details

Tyler Neely

commit sha 18c405cbfb011ea09a49d395ad7301882f654131

Cut 0.34

view details

Tyler Neely

commit sha fe13c8ff4a8e1a45859980ed1819767391f18ea9

Merge pull request #1132 from spacejam/tyler_0.34 0.34

view details

Tyler Neely

commit sha 76d54640475018c1d938ac48ad9eb9d9d72e06c1

Use a btreemap for tracking unstable batches

view details

Tyler Neely

commit sha 8bfacb023ba33e7015891532e1998220b64e4d05

Don't create a non-temporary db directory for testing tree pops

view details

Tyler Neely

commit sha d7bf09ecbdb429e53dca5b88df7aa12acd615891

Cut 0.34.1 with a new TransactionalTrees::flush method

view details

Tyler Neely

commit sha 3c7312a613caf18ab3ef3c1d72901f2c6cb0ebed

Update CHANGELOG.md

view details

Tyler Neely

commit sha 9e566e7a918adeed68edff9c6330cee29941979c

Clippy feedback

view details

Tyler Neely

commit sha fd0dcee69d2c7c284526ed0a674d15c844419a3a

Merge pull request #1136 from spacejam/0.34.1 Cut 0.34.1 with a new TransactionalTrees::flush method

view details

Tyler Neely

commit sha 9ed4c725fab0201be24b4f1efc85bf90ca54c5ce

update clippy configuration

view details

Tyler Neely

commit sha 300cd6af46d6e8d19ba0ef2d5f62db8d69b8aeff

Merge pull request #1137 from spacejam/clippy-change-version update clippy configuration

view details

Tyler Neely

commit sha ee2d430416edc1b64084e24a5476c9f9da9e77b0

Merge branch 'master' of github.com:spacejam/sled into tyler_avoid_sorting_batch_pegs

view details

push time in 6 days

pull request commentdivergentdave/certificate_carver

Bump futures-core from 0.3.6 to 0.3.7

@dependabot merge

dependabot-preview[bot]

comment created time in 6 days

push eventdivergentdave/certificate_carver

David Cook

commit sha f43890c8415891b594c375f6b072d19c6dd19914

Bump other futures crates

view details

push time in 6 days

push eventdivergentdave/sled-migrate

dependabot-preview[bot]

commit sha 366693fbc85e56fc7309089869896c9ecc10b8c1

Bump crc32fast from 1.2.0 to 1.2.1 Bumps [crc32fast](https://github.com/srijs/rust-crc32fast) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/srijs/rust-crc32fast/releases) - [Commits](https://github.com/srijs/rust-crc32fast/compare/v1.2.0...v1.2.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

view details

David Cook

commit sha a1936f7ad44cdd12d242f74a981c5d64f31dbf53

Merge pull request #7 from divergentdave/dependabot/cargo/crc32fast-1.2.1 Bump crc32fast from 1.2.0 to 1.2.1

view details

push time in 8 days

PR merged divergentdave/sled-migrate

Bump crc32fast from 1.2.0 to 1.2.1 dependencies

Bumps crc32fast from 1.2.0 to 1.2.1. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/srijs/rust-crc32fast/commit/c6a423b4da80da8e80f757f94d2e718187302e40"><code>c6a423b</code></a> release 1.2.1</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/56070590f89ba6ee370abedb15fac3daffd37f45"><code>5607059</code></a> remove powerpc environment from CI</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/39b16bc8ccc5fd18c693ed6369826e42a5cb49e1"><code>39b16bc</code></a> Update rand dependency to 0.7</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/40865a4bd3d28153f6910dfd64eeaca16b7b3b6d"><code>40865a4</code></a> Update quickcheck dependency to 0.9</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/c6d8c2c3767e1ca4f3250b11a63a996d0fc17536"><code>c6d8c2c</code></a> update cfg-if dependency</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/745de53176611973a726b62a0cb311e180c1c095"><code>745de53</code></a> Raise MSRV to 1.31</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/0ec13c8b3fd90a31bb18d5338d9148e1a73b9c39"><code>0ec13c8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/srijs/rust-crc32fast/issues/11">#11</a> from LingMan/patch-1</li> <li><a href="https://github.com/srijs/rust-crc32fast/commit/6c9b7b182aca2116a6b2350660167d09c824dc0f"><code>6c9b7b1</code></a> Fix typo in the readme</li> <li>See full diff in <a href="https://github.com/srijs/rust-crc32fast/compare/v1.2.0...v1.2.1">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

</details>

+20 -14

0 comment

2 changed files

dependabot-preview[bot]

pr closed time in 8 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 1f49c7bed1f5bc696f5cd90908e619746c7e2f4b

Extract attachments to PDFs

view details

push time in 10 days

push eventdivergentdave/certificate_carver

dependabot-preview[bot]

commit sha c12187141ac36c5c284a4a0b915382ec0ba58007

Bump futures-core from 0.3.5 to 0.3.6 Bumps [futures-core](https://github.com/rust-lang/futures-rs) from 0.3.5 to 0.3.6. - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.5...0.3.6) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

view details

dependabot-preview[bot]

commit sha 7f7fcee98ceecb8a4544a05d537f8cc33767ae13

Merge pull request #171 from divergentdave/dependabot/cargo/futures-core-0.3.6

view details

dependabot-preview[bot]

commit sha bd90f03fcdef83294c46b925c78d8d6308184021

Bump surf from 1.0.3 to 2.0.0 Bumps [surf](https://github.com/http-rs/surf) from 1.0.3 to 2.0.0. - [Release notes](https://github.com/http-rs/surf/releases) - [Changelog](https://github.com/http-rs/surf/blob/main/CHANGELOG.md) - [Commits](https://github.com/http-rs/surf/compare/1.0.3...v2.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

view details

David Cook

commit sha 4291dd917ec10d4dddb9f256e23da7e4ba775fcd

Updates for surf 2.0.0

view details

David Cook

commit sha 44c6b390eeba242d37c223e77b5c38104c840382

Use latest stable Rust on Travis CI

view details

dependabot-preview[bot]

commit sha 500213f0ab450645b6a9c4be74a8290e0db59e20

Merge pull request #170 from divergentdave/dependabot/cargo/surf-2.0.0

view details

David Cook

commit sha e668ed3adbd35139d3fafac059bf6e38bc898e4d

Add -j option to set number of threads

view details

David Cook

commit sha 2e2fb8053fac03bb40bb51714ddc5a47b4303f2a

Merge pull request #172 from divergentdave/cli-arg-threads Add -j option to set number of threads

view details

David Cook

commit sha 2579b23797a07c35e0291db8b5850ac74683a07b

Fix spurious error in keyUsage parsing

view details

David Cook

commit sha 20bec9f5932fb8d1323d8ac3db44fa27748a3b91

Add three more DirectoryString name attributes

view details

David Cook

commit sha cded64335d9264eb6d0199e9800fc9e68a91c080

Add uniqueIdentifier and BIT STRING in names

view details

David Cook

commit sha 1dc7d37c9f7d6b62cc56d0031b2c3bdfcbe3cd66

Add support for emailAddress in names

view details

David Cook

commit sha 3ce8151fdd462c6c0cbd3833b247c369fb2f8075

Add domainComponent and rfc822Mailbox

view details

David Cook

commit sha 1edfe80c41242092504a62b01db68447a88f2b0f

Parse BMPString

view details

David Cook

commit sha 726f249e7149ea44fe1eb99e9500d54964598e69

Merge pull request #173 from divergentdave/name-types Name types

view details

David Cook

commit sha c471a9a350283a1ecff4dc05be94d9de037b3ce5

Condense use statements

view details

David Cook

commit sha 7fd2dbf04b0ce63bbf58b20f169336f93cf80978

Heuristically give a nicer error message for CRLs

view details

David Cook

commit sha 8abef784571d2550647be07ad23b768b9664bf2c

Use named members in NameTypeValue

view details

David Cook

commit sha e278d25db4688d0ab66c04f4fe103d4972ce8123

Decode PDF signatures, carve them for certs

view details

David Cook

commit sha 3bb935b0b575d810685f956709037f6e932e4bcd

Add tracing for SigFlags

view details

push time in 11 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 8abef784571d2550647be07ad23b768b9664bf2c

Use named members in NameTypeValue

view details

push time in 11 days

delete branch divergentdave/certificate_carver

delete branch : name-types

delete time in 11 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 7fd2dbf04b0ce63bbf58b20f169336f93cf80978

Heuristically give a nicer error message for CRLs

view details

push time in 11 days

push eventdivergentdave/certificate_carver

David Cook

commit sha c471a9a350283a1ecff4dc05be94d9de037b3ce5

Condense use statements

view details

push time in 12 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 20bec9f5932fb8d1323d8ac3db44fa27748a3b91

Add three more DirectoryString name attributes

view details

David Cook

commit sha cded64335d9264eb6d0199e9800fc9e68a91c080

Add uniqueIdentifier and BIT STRING in names

view details

David Cook

commit sha 1dc7d37c9f7d6b62cc56d0031b2c3bdfcbe3cd66

Add support for emailAddress in names

view details

David Cook

commit sha 3ce8151fdd462c6c0cbd3833b247c369fb2f8075

Add domainComponent and rfc822Mailbox

view details

David Cook

commit sha 1edfe80c41242092504a62b01db68447a88f2b0f

Parse BMPString

view details

David Cook

commit sha 726f249e7149ea44fe1eb99e9500d54964598e69

Merge pull request #173 from divergentdave/name-types Name types

view details

push time in 12 days

PR merged divergentdave/certificate_carver

Name types

Add support for more name attributes and string data types.

+247 -22

0 comment

1 changed file

divergentdave

pr closed time in 12 days

PR opened divergentdave/certificate_carver

Name types

Add support for more name attributes and string data types.

+247 -22

0 comment

1 changed file

pr created time in 18 days

create barnchdivergentdave/certificate_carver

branch : name-types

created branch time in 18 days

delete branch divergentdave/pdf

delete branch : fix-warnings

delete time in 19 days

delete branch divergentdave/pdf

delete branch : encryption-formats

delete time in 19 days

delete branch divergentdave/pdf

delete branch : fix-data-types

delete time in 19 days

push eventdivergentdave/pdf

David Cook

commit sha 31413f898bdf058917e7d757d795314632437c41

Add support for more encryption formats (#65) * Refactor code for dictionary and stream parsing * Failing test: some strings are not encrypted * Don't try to decrypt strings in the /Encrypt dict * Add AESV2 encryption method * Split out function to parse trailer, set up crypto * Remove dbg!() logging * Add support for standard security handler rev. 2 * Add support for AESV3, using AES-256 * Add support for revision 6 security handler * Add test files for different encryption formats These files were generated with `pdfencrypt` from the `origami-pdf` package, and the following commands. pdfencrypt example.pdf --cipher RC4 --key-size 40 --output encrypted_rc4_rev2.pdf pdfencrypt example.pdf --cipher RC4 --key-size 64 --output encrypted_rc4_rev3.pdf pdfencrypt example.pdf --cipher AES --key-size 128 --output encrypted_aes_128.pdf pdfencrypt example.pdf --cipher AES --key-size 256 --output encrypted_aes_256.pdf pdfencrypt example.pdf --cipher AES --key-size 256 --hardened --output encrypted_aes_256_hardened.pdf

view details

David Cook

commit sha d29aacd021793582a0e27294392f3f0e1e477578

Fix warnings (#66) * Fix annotations on pdf_derive doctests * Remove unused function * Rename unused variables * Rewrite import to avoid warning with mmap off

view details

David Cook

commit sha 51ca02431b78fef1bd61acf4647bba908fd22caf

Object parsing fixes (#67) * Fix type of Extends key on Stream * Allow null in X and Y of an XYZ Dest * Simplify nested matches in NameTree parsing * Add more standard structure types * Allow structure types other than the standard ones * Change Object derive macro for non-stream enums to allow an "other" variant. * Add a variant annotated with #[pdf(other)] to StructType to handle any custom structure types.

view details

push time in 19 days

PR opened pdf-rs/pdf

Object parsing fixes

This PR collects a few fixes for errors due to unexpected object types.

  • Object streams will have a reference to a stream in their /Extends key, not an integer. It appears that this field isn't otherwise needed for parsing the file, perhaps it's just a hint for PDF editing applications?
  • In an XYZ Dest, the X and Y coordinates can be null, in addition to the zoom factor.
  • Added the rest of the standard structure types to StructType, and added another variant for names that aren't in the standard list. This included a change to the pdf_derive crate, to allow use of #[pdf(other)] in non-stream enums.
+148 -45

0 comment

4 changed files

pr created time in 20 days

push eventdivergentdave/pdf

David Cook

commit sha bfeefe0b0e31d00d3913acbb99bc892126fa6cbf

Allow structure types other than the standard ones * Change Object derive macro for non-stream enums to allow an "other" variant. * Add a variant annotated with #[pdf(other)] to StructType to handle any custom structure types.

view details

push time in 20 days

create barnchdivergentdave/pdf

branch : fix-data-types

created branch time in 20 days

PR opened pdf-rs/pdf

Fix warnings

This just cleans up a few lingering compiler warnings throughout the codebase.

+9 -12

0 comment

5 changed files

pr created time in 20 days

create barnchdivergentdave/pdf

branch : fix-warnings

created branch time in 20 days

PR opened pdf-rs/pdf

Add support for more encryption formats

This PR adds support for several more PDF encryption variants. Previously, only revision 3 of the standard security handler was supported. This PR adds support for the preceding revision 2 handler, and later formats using AES-128 and AES-256. I added some small test files covering each format, which were generated by encrypting the example.pdf test file with different settings.

As AES-128 and AES-256 encrypted streams/strings use CBC mode, with PKCS#7 padding, decryption can now fail, whereas previously with RC4 it could only return garbage. The spec states that certain strings in the document are not encrypted, such as the /ID in the trailer, and the contents of the /Encrypt dictionary. As such, the encryption Decoder can now take the indirect object reference of the /Encrypt dictionary, and it will skip trying to decrypt any strings within it. (If it tried to decrypt them with a /CFM of /AESV2 or /AESV3, it would throw a padding error when parsing it after the encryption state had been set up. Note also that /ID is read once when the trailer is parsed into a primitive::Dictionary, before the encryption state is set up, so no change is needed here.)

I also did a couple small refactors along the way, to extract common dictionary parsing code, and separated parsing the trailer and setting up decryption out from the following Trailer::from_primitive() call, for users such as myself to access the original trailer dictionary.

With the new test files, the integration test covers each encryption format, and there is a new unit test to cover plaintext strings in /Encrypt in a minimal RC4 encrypted file.

Note that owner passwords still aren't supported; I may do a follow-up PR later to add support for that in each revision.

+535 -210

0 comment

11 changed files

pr created time in 20 days

create barnchdivergentdave/pdf

branch : encryption-formats

created branch time in 20 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 72ffb084fb32fd577d86ecf7123701b15ed80745

More flexible parsing of interactive form fields

view details

push time in 20 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 2579b23797a07c35e0291db8b5850ac74683a07b

Fix spurious error in keyUsage parsing

view details

push time in 22 days

delete branch divergentdave/certificate_carver

delete branch : cli-arg-threads

delete time in 22 days

push eventdivergentdave/certificate_carver

David Cook

commit sha e668ed3adbd35139d3fafac059bf6e38bc898e4d

Add -j option to set number of threads

view details

David Cook

commit sha 2e2fb8053fac03bb40bb51714ddc5a47b4303f2a

Merge pull request #172 from divergentdave/cli-arg-threads Add -j option to set number of threads

view details

push time in 22 days

create barnchdivergentdave/certificate_carver

branch : cli-arg-threads

created branch time in 22 days

push eventdivergentdave/pdf

David Cook

commit sha bdeae8fecdabea8d5bc9585f20063492c20d1396

Fix parsing of empty arrays (#63)

view details

David Cook

commit sha 82d729d9d3bfc05e54770b294bf7cfc117a3ae97

Handle escaped carriage returns in strings (#64)

view details

push time in 23 days

delete branch divergentdave/pdf

delete branch : string-eol-escape

delete time in 23 days

delete branch divergentdave/pdf

delete branch : empty-array

delete time in 23 days

fork divergentdave/origami

Origami is a pure Ruby library to parse, modify and generate PDF documents.

fork in 24 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 44c6b390eeba242d37c223e77b5c38104c840382

Use latest stable Rust on Travis CI

view details

push time in 24 days

push eventdivergentdave/certificate_carver

push time in 24 days

create barnchdivergentdave/certificate_carver

branch : pdf-3

created branch time in 24 days

pull request commentdivergentdave/certificate_carver

Bump surf from 1.0.3 to 2.0.0

@dependabot merge

dependabot-preview[bot]

comment created time in 24 days

push eventdivergentdave/certificate_carver

David Cook

commit sha 4291dd917ec10d4dddb9f256e23da7e4ba775fcd

Updates for surf 2.0.0

view details

push time in 24 days

PR opened pdf-rs/pdf

Handle escaped carriage returns in strings

This pull request improves how the literal string lexer handles strings split across multiple lines. Previously, only b"\\\n" was handled, now all escaped end-of-line markers will be handled, i.e. b"\\\r" and b"\\\r\n" will be ignored as well. I also included some additional unit tests based on the examples in the PDF reference.

+66 -17

0 comment

1 changed file

pr created time in 24 days

create barnchdivergentdave/pdf

branch : string-eol-escape

created branch time in 24 days

pull request commentdivergentdave/certificate_carver

Bump futures-core from 0.3.5 to 0.3.6

@dependabot merge

dependabot-preview[bot]

comment created time in 24 days

PR opened pdf-rs/pdf

Fix parsing of empty arrays

This PR makes a small change to allow empty arrays. A unit test is included.

+13 -3

0 comment

1 changed file

pr created time in a month

push eventdivergentdave/pdf

David Cook

commit sha a704628b5f121ebeb95259dbfc466f4c84f4f9ef

Fix parsing of empty arrays

view details

push time in a month

create barnchdivergentdave/pdf

branch : empty-array

created branch time in a month

delete branch divergentdave/pdf

delete branch : error-send-sync

delete time in a month

delete branch divergentdave/pdf

delete branch : empty-name

delete time in a month

push eventdivergentdave/pdf

David Cook

commit sha 8af1f891eb1c7edcc793eace475d66800e7ad5ee

Make xref offsets relative to file header (#60) * Make xref offsets relative to file header * Breaking changes, only locate PDF header once

view details

David Cook

commit sha 097936e9f5c60a5e5af62534c3935d8d2881c34a

Make PdfError Send and Sync

view details

David Cook

commit sha 4f0e6aebcfc659dabe683352c89dbc5916f0c33a

Fix parsing of empty names

view details

push time in a month

PR opened pdf-rs/pdf

Parse empty names

I ran into an issue parsing a PDF that contained an empty name inside a dictionary. The troublesome dictionary was <</App<</Name/>>>>. The root cause of the issue was that the parsed value for the /Name key was />>, when it should have been /, and this threw off parsing the rest of the dictionary. (FWIW, the PDF reference has a note that reads "The token / (a slash followed by no regular characters) is a valid name.")

This PR changes the lexer and parser to treat a name as one whole token, rather than separate tokens for the slash and the following text. I opted to make this change because this way, the parser can distinguish between an empty name and a keyword separated by whitespace, versus a non-empty name.

Unit tests are included, both for the above in-the-wild example, and for the case of an empty name being followed by a keyword.

+79 -13

0 comment

2 changed files

pr created time in a month

create barnchdivergentdave/pdf

branch : empty-name

created branch time in a month

PR opened pdf-rs/pdf

Make PdfError Send and Sync

This PR makes the PdfError type both Send and Sync, by adding trait bounds to the trait objects it contains, and generic types in a couple functions that produce them. I also added a compile-time assertion for this to catch any future regressions.

+22 -6

0 comment

2 changed files

pr created time in a month

create barnchdivergentdave/pdf

branch : error-send-sync

created branch time in a month

push eventdivergentdave/certificate_carver

David Cook

commit sha cf83a56c83a65295946bea0f602aa4d8b8e292f9

Adjust logging levels

view details

push time in a month

delete branch divergentdave/certificate_carver

delete branch : dependabot/cargo/chrono-0.4.19

delete time in a month

push eventdivergentdave/certificate_carver

dependabot-preview[bot]

commit sha dab1faefd652f7471ff124116f46105289eb9a55

Bump chrono from 0.4.18 to 0.4.19 Bumps [chrono](https://github.com/chronotope/chrono) from 0.4.18 to 0.4.19. - [Release notes](https://github.com/chronotope/chrono/releases) - [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md) - [Commits](https://github.com/chronotope/chrono/compare/v0.4.18...v0.4.19) Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

view details

David Cook

commit sha d7d95a867305af20c245807986a228947b26fec8

Merge pull request #169 from divergentdave/dependabot/cargo/chrono-0.4.19 Bump chrono from 0.4.18 to 0.4.19

view details

push time in a month

PR merged divergentdave/certificate_carver

Bump chrono from 0.4.18 to 0.4.19 dependencies

Bumps chrono from 0.4.18 to 0.4.19. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/releases">chrono's releases</a>.</em></p> <blockquote> <h2>v0.4.19</h2> <p>See <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md#0418">CHANGELOG.md</a> for details.</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/chronotope/chrono/blob/main/CHANGELOG.md">chrono's changelog</a>.</em></p> <blockquote> <h2>0.4.19</h2> <ul> <li>Correct build on solaris/illumos</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/chronotope/chrono/commit/4eeedcfcc409f19d965f477d767d05f3418c4df1"><code>4eeedcf</code></a> Release 0.4.19</li> <li><a href="https://github.com/chronotope/chrono/commit/597717f0b02ded3f3ef8255862c6e808568c4785"><code>597717f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/491">#491</a> from quodlibetor/fix-oldtime-tzset</li> <li><a href="https://github.com/chronotope/chrono/commit/fbc1b934315859cdd4b4a1b9cc8fd8dbf352fd79"><code>fbc1b93</code></a> Check that we compile on solaris</li> <li><a href="https://github.com/chronotope/chrono/commit/6a97d72462ae9da55a13ebf336a849b4a7b2dc2f"><code>6a97d72</code></a> Fix a small typo in NaiveDateTime's Display impl (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/492">#492</a>)</li> <li><a href="https://github.com/chronotope/chrono/commit/f91e7e139cd305ac0f3f98f1a70aedeebb683ad4"><code>f91e7e1</code></a> Tighten targets where tzset is defined</li> <li><a href="https://github.com/chronotope/chrono/commit/f3bbc958a821f8a6a5a2150d88d5f99cdddf112a"><code>f3bbc95</code></a> Fix call of extern tzset function</li> <li><a href="https://github.com/chronotope/chrono/commit/c324d0ea08d1c9032563ae77a0f6e325dda5ba6e"><code>c324d0e</code></a> Always run tests on merge (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/487">#487</a>)</li> <li><a href="https://github.com/chronotope/chrono/commit/866eb61277afce91ce31554efc1f3d95f70dc510"><code>866eb61</code></a> Update changelog for 0.4.18 (<a href="https://github-redirect.dependabot.com/chronotope/chrono/issues/486">#486</a>)</li> <li>See full diff in <a href="https://github.com/chronotope/chrono/compare/v0.4.18...v0.4.19">compare view</a></li> </ul> </details> <br />

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


<details> <summary>Dependabot commands and options</summary> <br />

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
  • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot dashboard:

  • Update frequency (including time of day and day of week)
  • Pull request limits (per update run and/or open at any time)
  • Out-of-range updates (receive only lockfile updates, if desired)
  • Security updates (receive only security updates, if desired)

</details>

+5 -5

0 comment

2 changed files

dependabot-preview[bot]

pr closed time in a month

delete branch divergentdave/pdf

delete branch : file-start-offset

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : flatpak-portal

delete time in a month

PR opened qgis/QGIS-Website

Add note about xdg-desktop-portal for Flatpak

This PR will add a note to the Flatpak-based installation instructions about the xdg-desktop-portal/xdg-desktop-portal-gtk packages. Users on certain distributions will need to install these packages in addition to Flatpak itself, or else file dialog boxes won't open. See previous discusson on flathub/org.qgis.qgis#32.

+2 -0

0 comment

1 changed file

pr created time in a month

create barnchdivergentdave/QGIS-Website

branch : flatpak-portal

created branch time in a month

delete branch divergentdave/QGIS-Website

delete branch : design

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : plusdocs

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : masterwithspinxboostrap

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : release3

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : nyalldawson-patch-1

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : changelog312

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : update-graphics

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : revert_wrong_vote_text

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : mbernasocchi-patch-1

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : swiss_user_mtg_2020

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : timlinux-patch-1

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : timlinux-certification-1

delete time in a month

delete branch divergentdave/QGIS-Website

delete branch : m-kuhn-patch-1

delete time in a month

pull request commentpdf-rs/pdf

Make xref offsets relative to file header

I added a second commit with the API changes described above.

divergentdave

comment created time in a month

push eventdivergentdave/pdf

David Cook

commit sha d6aef4269968fe55adca43befe9ab78c8767290c

Breaking changes, only locate PDF header once

view details

push time in a month

PR opened pdf-rs/pdf

Make xref offsets relative to file header

This PR fixes parsing PDF files where the header is not at offset 0 in the file. In such cases, the offsets in the trailer and xref tables should be interpreted as offsets from the header, and not offsets from the beginning of the underlying file. See mozilla/pdf.js#6194 for a similar issue in pdf.js. I found a file exhibiting this behavior in the wild at https://iaspub.epa.gov/otaqpub/display_file.jsp?docid=50126&flag=1.

There is one TODO outstanding in this PR, so I'll mark it as a draft. Currently, the code searches the beginning of the file for the header's position in multiple places, but I'd like to find a way to compute this once and reuse it. The header offset is needed in both Backend::read_xref_table_and_trailer(&self) and <Storage<B: Backend> as Resolve>::resolve(&self, r: PlainRef).

I think the simplest way to do this would be to compute the header position inside File<B: Backend>::load_data(backend: B), and pass it from there into both read_xref_table_and_trailer() and Storage::new, storing it inside Storage for later use. However, this will require breaking changes to the API, as both Backend::read_xref_table_and_trailer and Storage::new are both publicly visible. Does this API change sound good?

+26 -5

0 comment

4 changed files

pr created time in a month

create barnchdivergentdave/pdf

branch : file-start-offset

created branch time in a month

delete branch divergentdave/pdf

delete branch : font-download-script

delete time in a month

push eventdivergentdave/pdf

Sebastian Köln

commit sha 7a5fb2bc9b8badee070e910090d63699edd2b2db

move encodings into a crate and only dump streams if PDF_OUT is set

view details

s3bk

commit sha 2dc45bfc3cac50fb4e7cfd9113cec7776e0fd5b4

Update README.md

view details

Sebastian Köln

commit sha 1357e6368ae8d70f995479ab3d75041ef9564cac

fix encodings and char widths

view details

Sebastian Köln

commit sha 06aa6954fda9ba995522a0564de58e8bc324ed81

autodetect a TrueType font in a OpenType container

view details

Sebastian Köln

commit sha 46359187a9ca9b24bf5913c8285e743c12bd7c4f

add File::from_data

view details

Sebastian Köln

commit sha b2c4fbf7c00c0ecaff3274165abfe5ea9f4904d3

fix tests and implement Backend for any T: Deref<Target=[u8]>

view details

Sebastian Köln

commit sha 5f981df76e12fdc06dfeb5a4278331d887db51be

copy and modify stb-truetype to fit our needs

view details

s3bk

commit sha 86f5283c380380803d218e5c8b4998c941118480

Update README.md

view details

Sebastian Köln

commit sha 8c80b0a6e09892909ff9e1d4fa92b22472312490

TrueType fonts kinda work now

view details

Sebastian Köln

commit sha 696cfd2cd30d66b14f5d9d91df70e8c87dc723fc

Merge branch 'master' of github.com:pdf-rs/pdf

view details

Sebastian Köln

commit sha 0576b27bc2aa27459b246fdeb4c138df6484ba17

decrypt charstrings as well

view details

Sebastian Köln

commit sha 29c9919df33d7ecb56ce40a35f6473fe85fcd199

fix TrueType fonts.

view details

Sebastian Köln

commit sha 29a26a39b705cf4692d335856f9c00c2f43ed575

fall back to assume same encoding

view details

Sebastian Köln

commit sha 12b9e168811a68b7894dd97c671f32fb54c4057f

small fixes

view details

Sebastian Köln

commit sha d7db1807735b97dd3c3513303e2568c5d197a2dc

fix stupid CFF encoding

view details

Sebastian Köln

commit sha fae85f346306ebb396e4117349fed179bb343049

add view benchmarks

view details

Sebastian Köln

commit sha 7287e93a179a0b0ce5763933204408533294a4b2

fix a stupid stream parsing bug and make PagesNode easier. Also remove backwards lexer

view details

Sebastian Köln

commit sha 1c93ce98a57699c0ce53ae368411e01215f617b9

fix some bugs

view details

Sebastian Köln

commit sha 0cdd2316a63d39aeeabde48eca77e3d952085879

add builtin charsets to CFF

view details

Sebastian Köln

commit sha b7069e13a1bbf31b6e2fda0a73a1c14d1f060142

remove some debug print

view details

push time in a month

issue closeddivergentdave/certificate_carver

Replace clap with something smaller

I'm only using it for positional arguments and a usage message anyway. Inspired by https://www.reddit.com/r/rust/comments/cg3p5m/cargobloat_08_debloated_5x_smaller_10x_faster/

closed time in a month

divergentdave

issue commentdivergentdave/certificate_carver

Replace clap with something smaller

Clap is fine, plus I'm using at least one more feature now

divergentdave

comment created time in a month

issue commentdivergentdave/certificate_carver

Cache trusted CAs in database

Doing this efficiently would require indexing the stored CA certificates so that we can look them up by subject name, and avoid parsing all of the stored intermediate CA certificates. One way to do this would be to serialize the distinguished name structures, following how they are used in the Hash and PartialEq implementations. Then, if the serialized structures are byte-wise equal, the two names match under the relevant matching rule. This key serialization would need to be versioned, and all stored certificates would need to be re-indexed upon a version change.

divergentdave

comment created time in a month

pull request commentdivergentdave/certificate_carver

Bump async-std from 1.6.4 to 1.6.5

@dependabot merge

dependabot-preview[bot]

comment created time in a month

PR opened RustCrypto/hashes

Fix panic on arithmetic overflow

I found a crash in the GOST hash function through fuzzing. The test added here was panicking with attempt to add with overflow, because there was one place a carry bit was being added with + instead of overflowing_add.

+13 -1

0 comment

3 changed files

pr created time in a month

create barnchdivergentdave/hashes

branch : gost94-overflow

created branch time in a month

more