summaryrefslogtreecommitdiff
path: root/crates/tor-cert/src
Commit message (Collapse)AuthorAgeFilesLines
* tor-cert: Ability to create Rsa->Ed25519 crosscerts.Nick Mathewson2026-02-193-5/+141
|
* Allow clippy::collapsible_if to triggerGabriela Moldovan2026-02-161-0/+1
| | | | | | | | | `clippy::collapsible_if` started triggering after bumping the MSRV to 1.88. Since this triggers from a lot of places, and since there even are a couple of instances where we explicitly allow `clippy::collapsible_ifs`, I've opened #2342 for deciding what to do about it.
* cert: Extract x509 code into new tor-cert-x509 crate.Nick Mathewson2026-02-022-394/+2
|
* maint/add_warning: Run script to add new warningGabriela Moldovan2026-01-271-0/+1
| | | | This adds the lint to all our crates.
* cert: Add cert_type() to RsaCrossertDavid Goulet2026-01-221-0/+7
| | | | | | It is always the same type for this specific certificate. Signed-off-by: David Goulet <[email protected]>
* Remove unnecessary `doc(cfg(...))` attributesNeel Chauhan2025-12-042-2/+0
| | | | | | | | | Fixes part of #2193. (Edits from nickm: I selected the cases here that I could verify were correct from immediate context.) Edited-by: Nick Mathewson <[email protected]>
* Rename TlsCertifiedKey to TlsKeyAndCert.Nick Mathewson2025-11-121-4/+4
|
* x509: Correct single instance of misnamed certNick Mathewson2025-11-121-1/+1
|
* x509: Support generating the keys and certs that relays need.Nick Mathewson2025-11-121-8/+187
| | | | | | | | | | | | | | | | | | | | Although we never need to actually check the signature on the other party's x509 certificate, A relay does need a certificate and a private key in order to be a proper TLS server. In this function, I've added support for making an ersatz P-256 certificate certifying a P-256 key. See the code for info about the rationale here. (Tor supports this, since it doesn't look at the key at all: only the TLS layer cares about that.) native_tls and rustls expect to get their keys and certs in different forms, so this code provides them. (Note that we don't expect to use native_tls with relays in the first place, but it might be useful for lower-level interop testing.) Closes #2205.
* x509: Extract serial-number generation into its own function.Nick Mathewson2025-11-121-6/+9
|
* x509: Fix an unfinished comment.Nick Mathewson2025-11-121-1/+1
|
* x509: refactor lifetime calculationNick Mathewson2025-11-121-27/+23
| | | | | This doesn't give precisely the same results as before for leap years, but that should be okay.
* Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-063-4/+4
| | | | Run maint/add_warning
* proto: Remove relay ChannelAuthenticationData builderDavid Goulet2025-10-231-0/+5
| | | | Signed-off-by: David Goulet <[email protected]>
* tor-cert: Generate x509 identity certificates for CERT cellsNick Mathewson2025-10-072-0/+217
| | | | Closes #2197.
* Remove "doc_auto_cfg" incantation from all crates.Nick Mathewson2025-09-291-1/+1
| | | | This feature has been removed from nightly, in favor of doc_cfg.
* clippy: fix `clippy::duplicated_attributes` warningsSteven Engler2025-08-111-1/+0
| | | | | | | | | | ```text warning: duplicated attribute --> crates/tor-hsservice/src/timeout_track.rs:630:14 | 630 | #![allow(clippy::needless_pass_by_value)] // TODO hoist into standard lint block | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ```
* Switch Cargo.toml files to edition 2024.Nick Mathewson2025-08-071-1/+1
| | | | | | | | | | | | | | First, run ``` git grep -l "^edition =" | xargs perl -i -pe 's/^edition *=.*/edition = "2024"/;' ``` Second, manually verify that all Cargo.toml files have changed, and nothing else has changed. Third, run cargo fmt again.
* Temporarily suppress mismatched_lifetime_syntaxes.Gabriela Moldovan2025-07-071-0/+1
| | | | See #2060.
* squash! Upgrade rand dependency to 0.9.Nick Mathewson2025-03-181-1/+1
| | | | - `rand::thread_rng()` has been deprecated and renamed to `rand::rng()`
* Wrap ed25519-dalek types.Nick Mathewson2025-03-182-3/+2
| | | | | | | | | | | With this change, we'll no longer need to expose the types from dalek-cryptography as part of our API, and we'll have more freedom to switch ed25519 implementations, or to upgrade to a newer `rand` ahead of their schedule. Unlike with x25519-dalek, I had to tweak the API a bit: There's no way to get a &PublicKey out of a Keypair now, and implementing the old ed25519-dalek traits seemed unnecessary.
* cert: reserve 0x0C for FAMILY_V_IDENTITY (happy families) certs.Nick Mathewson2025-02-111-0/+4
|
* tor-cert: Add experimental API for building EncodedEd25519Certs.Gabriela Moldovan2025-01-131-0/+17
| | | | | | | | | | | | | | | | This will enable us to deserialize byte slices as `EncodedEd25519Certs`. Needed because this type will be used to representing a parsed + validated cert retrieved from the keystore. Technically, we *could* do without this function by defining a separate newtype wrapper over `Vec<u8>` to represent the validated cert data, but IMO adding a second encoded ed25519 cert type in another crate might be confusing later down the line (because the two types will be nearly identical, and are bound to eventually diverge in terms of API and implementation). Part of #1137
* tor-cert: Remove no-longer-needed experimental API.Gabriela Moldovan2025-01-131-12/+0
| | | | Part of #1768
* tor-keymgr: Use Ed25519Cert::decode to parse the certs.Gabriela Moldovan2025-01-131-0/+1
|
* clippy: deny `mod_module_files`Steven Engler2025-01-061-0/+1
| | | | | | Denies 'mod.rs' files for consistency. https://rust-lang.github.io/rust-clippy/master/index.html#mod_module_files
* tor-cert: Add constructor for creating an encoded cert from a byte slice.Gabriela Moldovan2024-12-041-0/+11
| | | | | | This adds an experimental API for creating an `EncodedEd25519Cert` from a byte slice. We will need this in `ArtiNativeKeystore` for deserializing the on-disk certs to `KeystoreItem`s.
* add_warnings, *: Allow clippy::needless_lifetimesNick Mathewson2024-12-031-0/+1
| | | | | | | | In 1.83, this warning triggers on many of our crates. We're thinking of fixing them all, but for now, we're going to disable the warning. This is part of #1765.
* Re-run maint/add_warning.Nick Mathewson2024-05-061-2/+2
| | | | This commit is automatically generated.
* Run maint/add_warning.Nick Mathewson2024-03-132-0/+2
|
* deny clippy::unchecked_duration_subtractiontrinity-1686a2024-02-291-0/+1
|
* Remove RngCompatExt.Nick Mathewson2023-11-291-2/+1
| | | | | | | | | | This code was needed with the old version of dalek-cryptography, which wasn't compatible with up-to-date versions of the `rand` crate(s). But now that we've upgraded, we can drop this. (We could have left it around and deprecated it, but we are already making a breaking change to tor-llcrypto by upgrading dalek-cryptography.)
* Convert to the latest versions of dalek-cryptographyNick Mathewson2023-11-292-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main changes that we have to adjust for are as follows: * In x25519-dalek: * `StaticSecret` is now behind a feature. * `StaticSecret::new` is deprecated in favor of `StaticSecret::random_from_rng`. * StaticSecret no longer does its own clamping. * In ed25519-dalek: * `SecretKey` has (in effect) been renamed to `SigningKey`. The name `SecretKey` is now an alias for `[u8; 32]`. * `SigningKey` is effectively a keypair, since it contains a public key as well. * `PublicKey` has been renamed to `VerifyingKey`. * The functions to extract a signing key and verifying key have been renamed as you might expect. * `ExpandedSecretKey` has been moved to `hasmat` and no longer implements `sign`. * `ExpanededSecretKey` now has as its elements a scalar and a hash prefix. * Various functions that took `&[u8]` now take `&[u8; N]`. * We no longer need a wrapper for older versions of rand. There is a single test in tor-keymgr that does not pass. I've marked it as ignore for now, in hopes that @gabi-250 can help me figure it out. This closes #808. There are several changes I want to make before we merge, however. They are marked with TODO DALEK.
* tor-cert, tor-netdoc: Use EncodedEd25519Cert instead of Vec<u8>.Gabriela Moldovan2023-10-251-2/+2
|
* tor-cert: Add EncodedEd25519Cert type.Gabriela Moldovan2023-10-252-0/+15
|
* tor-netdoc: Update outdated doc string.Gabriela Moldovan2023-10-251-1/+1
|
* Run maint/add_warning to add lint block everywhereIan Jackson2023-08-232-0/+2
|
* Merge branch 'dangerously_assume_timely' into 'main'Ian Jackson2023-08-161-1/+1
|\ | | | | | | | | tor-cert: actually use dangerously_assume_timely See merge request tpo/core/arti!1497
| * tor-cert: actually use dangerously_assume_timelyEmil Engler2023-08-101-1/+1
| | | | | | | | | | | | This commit makes a trait function use another currently unused trait function, thereby increasing the test coverage, as well as being potentially more correct from a semantic point of view.
* | doc: note unreachable codeEmil Engler2023-08-101-0/+1
| |
* | test: encode unrecognized `tor_cert::CertExt`Emil Engler2023-08-101-0/+14
|/ | | | | This commit introduces a test for unrecognized `tor_cert::CertExt` fields.
* Run add_warnings on all files.Nick Mathewson2023-08-041-2/+2
|
* Run maint/add_warning to actually apply new lint allowsIan Jackson2023-07-102-0/+3
|
* Run add_warning to remove `missing_panics_doc` deny.Nick Mathewson2023-07-061-1/+0
| | | | Closes #950.
* Remove spurious todo-hs items in tor-cert.Nick Mathewson2023-06-281-6/+0
| | | | | | | I am not sure why we wrote these comments, but they are incorrect: I've investigated the C code and found only 3 key types. The "unimplemented" types that the TODO comment here complains about are in fact certificate types.
* lints: Run maint/add_warning to actually apply new lintsIan Jackson2023-06-211-0/+2
|
* Deprecate check_key, and refactor its logic into the new functions.Nick Mathewson2023-05-161-16/+33
| | | | Closes #759
* Replace usage of KeyUnknownCert::check_key.Nick Mathewson2023-05-161-1/+1
|
* tor-cert: Add new functions to replace KeyUnknownCert::check_key.Nick Mathewson2023-05-161-0/+30
| | | | | | | These should have a cleaner API than check_key, and be easier to understand. Part of #759
* fix a couple clippy lintstrinity-1686a2023-05-081-3/+3
|