Hacker Newsnew | past | comments | ask | show | jobs | submit | dignifiedquire's commentslogin

relays _can_ be used to resolve IDs, but so can mDNS, an email or any other form of third party channel


the use case here is somebody opens a web browser and types/pastes an ID into the top bar -- and it needs to resolve, correctly, without prior knowledge, in roughly the same amount of time that DNS takes today

relays are the only thing among the things you listed that even have a chance of solving this problem


thanks everyone for all the love <3

[maintainer of iroh here]


we do have https://github.com/n0-computer/iroh-c-ffi which is lowlevel but directly usable from any c like language


Oh nice, thanks for that. Do you think I should hold my breath for a UDP transport or just use it to negotiate direct socket connections?


appreciate the feedback, it was a hard decision to make, but has felt more right everyday since we made it


this would be great to have, but as we rely heavily on quic, we first need an implementation of quic in no_std which is the current biggest challenge


this made my day


While rpgp is slowly gaining support for this format (the aid users to be able to talk to anyone they want) it will keep emitting the broadest compatible format for a while by default, until the whole ecosystem has upgraded. The aggressive stance from gnupg is really hurting people and removes one of the biggest benefits of pgp, broad interop with compliant implementations.


Each faction has a seemingly legitimate position. My understanding is that there are no cryptographic weaknesses in the existing block cipher mode (SEIP) so there are no downsides to just doing that indefinitely.


Fun fact, the main reason I developed rpgp in the first place was to power the pgp portion pf deltachat, as we ran into the same problem of not having a good library based implementation. And spawning gnupg on a phone was never an option.


I am not sure if this is an actual issue, all auditors that looked at this so far haven’t mentioned this being a problem. But I will have to investigate what the exact state is.


According to `git blame`, this was introduced June 2023, i.e. after your audit in 2019. But maybe it was moved from an older piece of the codebase, I didn't dig too deep.

(Looks like the IncludeSec folks did a decent job in 2019. Hi Eric!)


This was allowed in the rust-rsa crate directly before, which is why it was introduced in that commit.


Yep, I saw the upstream[1].

However, I misread this: I thought the padding was being done on the cleartext signing side, but this is padding of the signature itself. So there's some malleability here, but it isn't susceptible to DO'1985. I'll update my top-level comment.

[1]: https://github.com/RustCrypto/RSA/issues/272


Glad people care to look, that's what matters.


Thanks, appreciate the careful check!


hey, author here, happy to answer questions, and would love to hear from anyone using the library :)


It seems OpenPGP is still riddled with SHA-1. Git kind of avoided the problem (https://github.blog/2017-03-20-sha-1-collision-detection-on-...). What's your plan to deal with the issue?


I am not aware of any outstanding SHA-1 issues that would require a change in the current RFC4880 OpenPGP standard. There was an obscure attack that involved generating two keypairs with colliding SHA-1 signatures and getting a third party to sign one of them but you can just use a different hash (say SHA256). The SHA-1 used in the MDC portion of the authenticated encryption mode doesn't and is very unlikely to ever represent any security weakness (the hash used there doesn't require any particular cryptographic properties). SHA-1 is used for the key fingerprint, but the use of a hash with collision resistance is not required in general for key fingerprints. An attacker could in theory create two different keys with the same fingerprint, but then they would just own two keys that would be hard for to distinguish from one another. You don't sign the fingerprints, you sign the actual public key. In general, it would be a bad idea to specify that the hash used for a key fingerprint required collision resistance as that would mean that the fingerprint would have to be something like an unusable 256 bits long to prevent birthday attacks.


I just finished implementing sha1collision detection, and it will be integrated into rpgp soon https://github.com/rpgp/rpgp/issues/293

This is the same algorithm used by git.

There are higher level implementations that use the dates on signatures to straight out reject sha1 material, but that gives only a limited protection.


Does it support smart cards and such devices?


it‘s not builtin, but possible to integrate with

@wiktor-k is working on a tool to use rpgp to provide a simple solution to work with smartcards


Yep. We've got it working with OpenPGP Card devices (Yubikeys, Nitorkeys, etc.). The signing part was actually pretty easy and the decryption required a bit more work but the maintainer was super responsive (https://github.com/rpgp/rpgp/pull/315).

Overall I'm pretty happy with the codebase.

The PoC for using cards in git is in https://github.com/wiktor-k/monkeybagel (excuse the silly name ;).


How does it interface with the cards? IIRC the rust pcsc library used by Sequoia needed C libraries. I've been doing some NFC stuff too and was looking for a pure-rust solution if there was one.


It uses this crate: https://crates.io/crates/pcsc

On Windows and Mac it binds to system libraries. On Linux it works with pcsclite.

Btw I'm not aware of any tooling that's used by Sequoia, rather wrappers that use Sequoia and pcsc crate.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: