@bcts/components 1.0.0-alpha.9 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,5 +1,6 @@
1
- Copyright © 2023 Blockchain Commons, LLC
2
- Copyright © 2025 Leonardo Amoroso Custodio
1
+ Copyright © 2023-2026 Blockchain Commons, LLC
2
+ Copyright © 2025-2026 Parity Technologies
3
+
3
4
 
4
5
  Redistribution and use in source and binary forms, with or without modification,
5
6
  are permitted provided that the following conditions are met:
package/README.md CHANGED
@@ -10,5 +10,28 @@ Also includes a library of CBOR tags and UR types for use with these types.
10
10
 
11
11
  ## Rust Reference Implementation
12
12
 
13
- This TypeScript implementation is based on [bc-components-rust](https://github.com/BlockchainCommons/bc-components-rust) **v0.30.0** ([commit](https://github.com/BlockchainCommons/bc-components-rust/tree/f3d0081db048da942f316aa4cb5128af8921edd8)).
13
+ This TypeScript implementation is based on [bc-components-rust](https://github.com/BlockchainCommons/bc-components-rust) **v0.31.1** ([commit](https://github.com/BlockchainCommons/bc-components-rust/tree/cc4d40218810319e286dc2d4e588731a3a70d0f5)).
14
+
15
+ ### SSH Support
16
+
17
+ OpenSSH text-format keys, signatures, and certificates round-trip byte-identically with Rust's `bc-components-rust`. They can be parsed, re-serialized, signed with, and verified directly via the `SSHPrivateKey`, `SSHPublicKey`, `SSHSignature`, and `SSHCertificate` classes, and they format correctly through the envelope summarizers (`tag(40800..40803)`).
18
+
19
+ Algorithms supported for direct sign/verify and round-trip:
20
+
21
+ - Ed25519 (`ssh-ed25519`)
22
+ - ECDSA P-256 (`ecdsa-sha2-nistp256`, SHA-256)
23
+ - ECDSA P-384 (`ecdsa-sha2-nistp384`, SHA-384)
24
+ - DSA (`ssh-dss`, 1024-bit p / 160-bit q / SHA-1) — RFC 6979 deterministic `k`, byte-identical to Rust's `dsa` crate. Cryptographically deprecated; supported only for legacy interop.
25
+
26
+ #### Deferred SSH features
27
+
28
+ The following are deferred and will throw a clear error when attempted:
29
+
30
+ - **SSH agent integration** — `SignatureScheme::SshEd25519` / `SshDsa` / `SshEcdsaP256` / `SshEcdsaP384` dispatch through `SigningPrivateKey.signWithOptions`, plus `SSHAgent` key-derivation. These require a platform-specific agent transport that is not yet wired up. Use the SSH classes directly, or use `Ed25519` / `Schnorr` / `Ecdsa` / `Sr25519` / `MLDSA*` schemes; for key derivation use `HKDF`, `PBKDF2`, `Scrypt`, or `Argon2id`.
31
+ - **Encrypted private keys** — `OPENSSH PRIVATE KEY` blocks with `ciphername != "none"` (bcrypt-pbkdf + AES-256-CTR) are rejected.
32
+ - **RSA-2048** (`ssh-rsa`) — pending Noble RSA primitives.
33
+ - **ECDSA P-521** (`ecdsa-sha2-nistp521`) — pending upstream fix in `ssh-key` ([RustCrypto/SSH#232](https://github.com/RustCrypto/SSH/issues/232)).
34
+ - **`cert-v01@openssh.com` validation** — `SSHCertificate` round-trips the OpenSSH text verbatim and uses the fixed summarizer string, matching Rust's placeholder-only state.
35
+
36
+ See `SSH_PLAN.md` at the repo root for the detailed parity history.
14
37