Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/QubesOS/qubes-rpm-oxide
Rust libraries for processing RPM packages
https://github.com/QubesOS/qubes-rpm-oxide
This is necessary for /dev/null writes to work properly.
cc1c996c301c6fe43f8fbdf36bf7aa02a0c68ee7 authored almost 4 years agoThis fixes a compiler warning.
1ff02fc22cf0e372f6bcb95cdf5f783a826841f5 authored almost 4 years agoSuggested-by: Marek Marczykowski-Górecki <[email protected]>
06af5601cd8de8fb419bc82905b66f8642a3af1d authored almost 4 years ago
The new API properly distinguishes between trusted and untrusted
digests, and also has unit-tests.
It previously had a clone of the (former) `rpm-syntax` documentation.
4295da6b5f02951130a7abda860ccac18a50e0e5 authored almost 4 years agoGood catch, rustc!
efec6560cbfb955e3c1497f6aa8f1191851332b2 authored almost 4 years agoThese are needed to ensure malformed packages are detected.
33f82f1df6be89f50b52e83e752848c36de80d93 authored almost 4 years agoOtherwise it is rather risky.
3e7472ddac4d8119d110d3e6fe2a9c9ba48f7830 authored almost 4 years ago
This modifies the code to allow reading from a pipe or socket, avoiding
the requirement to buffe...
A 5-tuple is replaced with a proper struct, and it is now possible to
preserve the header+payloa...
This is a prerequisite for streaming.
5c05402514a9f0d833f0ad6316489d98385a73b6 authored almost 4 years agoNo change in behavior.
ac80a9c298e20b2aabded44236359392517033db authored almost 4 years ago
This makes the code simpler and ― more importantly ― far more
maintainable.
Emitting types with non-zero alignment is not yet implemented.
2051b06d0e5d5b24c3f1d5a86fcbb749708061b5 authored almost 4 years agobc0951a0b9810c276761dac7445d2091c98870c5 authored almost 4 years ago
This removes some unused helper functions.
540314a1afa70a01708dbd827dec288a2ba83dc1 authored almost 4 years ago
This massively simplifies the OpenPGP packet parser, largely by removing
the unneeded `Subpacket...
Initialization should be the job of the application, not the library.
10558c8b0ce234789acb49920926ef26dec589c3 authored almost 4 years ago
DNF rejects them when signature verification is turned on, and this is
the default for remote re...
This is necessary to parse Zoom RPMs. In particular, the list of
allowed hash algorithms must b...
openpgp_parser’s buffer module had only two items. Just export both
from the root.
Zoom and Google Chrome RPMs are signed with SHA-1!
44fb1f54e76513ac672505e5edc18c8c27186e7d authored almost 4 years agoThis is necessary to even parse signed RPMs generated by qubes-builder
08cec2373bb13550fcc33b9407e1c0358c26f07f authored almost 4 years agoThese repositories are not used.
5866e8db5d0312dfcf6832fa714b328ab78120cb authored almost 4 years agoThis avoids writing an empty file.
e4ba322d1dfff48630359afa86ca5ed72ab38560 authored almost 4 years agod1f105b258e333695802107942f4aed080c3be64 authored almost 4 years ago
cd547ac696744a5cec324bf6756b873e75a549fa authored almost 4 years ago
3ca9df88eef78e99ba19fe475873967a457f32ec authored almost 4 years ago
This lead to a massive refactoring, removing `Reader::get`.
7610480293129f0ae1fd2150b03dc00497523305 authored almost 4 years agoAlso allow key ID to be hashed
5a6fd2301e3985cbf506f199715824fb0c46550a authored almost 4 years agoIt checks that the output of rpmcanon is installable.
ea69d000e448705023698352975f7de78a5a171a authored almost 4 years agoThis is expected for Rust crates
97dab2868d430f110181cd81325190f18afd367a authored almost 4 years agoThis will help catch bugs.
8108c051cae0996ea56bb106968680b9b336b2ba authored almost 4 years ago
Signature info is immutable, so use getters instead of public fields.
Also require creation time...
This is needed to canonicalize signatures.
9c673647b4345c6f6142f6ceac59846f3b396f91 authored almost 4 years ago40ffced14ebacaddd618822d265f7ab93a140f52 authored almost 4 years ago
This is part of a major refactor of the OpenPGP code.
5e8e79f9029ddd30fe013a64ee849ca8d273221f authored almost 4 years agoThis test came from ‘cargo new’ and serves no purpose.
6c12a7feab07ff57ba9714e5bb5560ad1a4a5a95 authored almost 4 years agoSee doc comment for details
4965b5dcb08f3a7ddbe83c6b9843a495fd21c764 authored almost 4 years agoThe new test better explains what is happening.
d56810bb08dcbb724ae2546dd30484443a1fff8e authored almost 4 years ago42fb888cc06af21e15772af2f0d561cd7018975a authored almost 4 years ago
rpmcanon now verifies signatures, and regenerates the lead from the
header.
Another refactoring.
7df1d24be41f0cf771bc2a6812d063ce4f6216bc authored about 4 years agoNo change in functionality.
9012886c1c1f5801486c1aab9827dff5a3a40b3c authored about 4 years ago13abd9f2bc916b58575eaf62d2ba82d3d97041aa authored about 4 years ago
Minor refactoring that simplifies the code
82551e81245dc7c6c4ba47b4f6c4f9f038c5f9c7 authored about 4 years agoIt didn’t pull its weight.
b2eacdad6603a7f2e2a03860259cb75b365344c1 authored about 4 years agoYet another refactoring.
9ac7c075256f4d21ddddbcb995372c88d5161bb3 authored about 4 years agoPurely a simple refactoring.
a1eae71403b7f1302c2c308b33e886686df74785 authored about 4 years ago
This validates the package lead against the package header. This
required extracting the name, ...
This implements rpmcanon, an RPM canonicalization tool. Specifically,
rpmcanon takes an input R...
The package lead must be consistent with the header. Ensure this by
checking that the package n...
This allows them to be reserialized later.
375cb6b6598a55d51d0482b43b1b6d96fd99b302 authored about 4 years agoThis allows serializing user-created TagData entries.
cb0750a8dcf4d126cd335a39852b008de0188946 authored about 4 years agoIt is useful for other tools.
2504e9a859a214750a016b3b835b084c87c7895b authored about 4 years agoPurely a readability improvement
fec0ba9f3e99311994750f295f258e1ba1ce4635 authored about 4 years ago
This makes rpmcheck sufficient to ensure the recent DNF bug can’t be
exploited. Specifically, i...
Asking users to provide a separate digest context to check a signature
makes little sense and is...
by checking that we can verify a real RPM package’s payload digest.
f35a62487b3c33911754369eccbedaa151c9d008 authored about 4 years agoThis adds Rust bindings to RPM’s built-in digest functionality.
56ae8e4387ac295468b67af9601d356747c9be2e authored about 4 years ago
In production, it is better to just return ‘None’, but in tests, panic
so that the developers kn...
It is always a programming error.
c6394c806b28ba61fb8a7dd2c5755766d6aa6ec1 authored about 4 years ago
This can be used to validate an RPM file before passing it to
‘rpmkeys --checksig’.
rpm-parser can now read a real-world RPM package!
8e2ac9f39f17ecbfaec11afc4aade68c3fbb930f authored about 4 years ago
These will be needed to actually parse packages. Fortunately, the lead
is simple enough I could...
Using an ‘FnMut’ closure is much nicer than emulating it with an enum.
4002ffa6fbfb08e0e45b5a76e6d5498fb1db6e99 authored about 4 years agoThis eliminates a bunch of crufty expects.
1f769a35d1a65e4085aa7b1c2f98416639bff93e authored about 4 years agoThis makes for clearer code.
f7c06180a54fb09da08180ecfca3d38dd88a15ff authored about 4 years agoThis avoids needing an explanatory comment.
b622a30f9455e46d8031e7fce6785d3ed7b52131 authored about 4 years agoThis is already tested by the RPM parser’s own test suite.
575c538273d889e697c5bc4002c19db70db5f322 authored about 4 years ago
Some of the documentation claimed that these methods read little-endian
integers. The code was ...
Both big- and little-endian are supported.
d92849005cb5f700dd925bb1d1d3c68ecd196f53 authored about 4 years ago
The payload digest is now extracted from immutable headers, as is its
algorithm. Warnings are n...
This successfully parses the Lua 5.4.2-1 RPM from Fedora 33!
a687b129f1dbdf21364c985207b99c2275c71f96 authored about 4 years agoThese will be used by the RPM header parser. See the diff for details.
13a58f330357809d4a62235f1abd5c42e11914ce authored about 4 years agojust as with ECDSA.
0393b37bc9060aabfa132d466abcebdf7eecba4c authored about 4 years agoIn the interest of strictness, forbid this.
26b5119687e947bc5681371f3c492590dc5414a9 authored about 4 years ago
They are only used in certification signatures, so they are pointless in
data signatures. Rejec...
This allows us to give a better error message.
22d8522e5ed3c7d5acc3e02906a1f3c97b7e0a31 authored about 4 years agoAs is often the case, the tests are nearly as long as the code.
9f443a5611edce011ebd2af3663511d935b79e04 authored about 4 years agoThese APIs will be quite useful for the RPM parser.
a964b703abb2a9dcaf6acf426ba20cf618248c2d authored about 4 years agoThis parses a signature from a real RPM file!
6d94cc189545467bfe1131ffe52d8c2ec95a2023 authored about 4 years agoThis needs to be checked with Marek before it is published.
1fddb164455907753d3ce11b3a0d5adfcebc62a1 authored about 4 years agoSo far, this just includes some basic functions for reading packets.
49cbc5ec3b27ca1d7c72cb1eac50c10e9c074739 authored about 4 years agoYay!
fbca6f93a8aa75ec45fdb05a5c9759602b8f7b1d authored about 4 years ago