Skip to content

Adding session recording plugin for age#55120

Merged
eriktate merged 2 commits intomasterfrom
eriktate/encrypted-recording-age-plugin
Jun 24, 2025
Merged

Adding session recording plugin for age#55120
eriktate merged 2 commits intomasterfrom
eriktate/encrypted-recording-age-plugin

Conversation

@eriktate
Copy link
Copy Markdown
Contributor

This PR adds an age plugin to better facilitate session recording encryption and decryption. It adds an additional stanza containing the public key used to wrap the file key which can be used at decryption time to more efficiently find the related private key. The actual internals for how filekeys are wrapped and unwrapped are unchanged from the age default for X25519 keypairs.

@github-actions github-actions Bot requested review from avatus and rudream May 23, 2025 20:57
@public-teleport-github-review-bot public-teleport-github-review-bot Bot removed the request for review from rudream May 23, 2025 22:18
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch 2 times, most recently from 88375d9 to e944d7d Compare May 27, 2025 23:32
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 144d102 to 05d9bdd Compare May 27, 2025 23:32
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch from e944d7d to 848b135 Compare May 27, 2025 23:42
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 05d9bdd to 91b056c Compare May 27, 2025 23:42
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch 2 times, most recently from 549fcd0 to 37bcbfe Compare May 28, 2025 18:37
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 91b056c to 6cbe77d Compare May 28, 2025 18:41
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch from 37bcbfe to 06206eb Compare May 28, 2025 20:26
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 6cbe77d to b3233d2 Compare May 28, 2025 20:57
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch 2 times, most recently from 54c711f to df2ca7c Compare May 30, 2025 03:19
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from b3233d2 to 7804aab Compare May 30, 2025 13:02
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch 6 times, most recently from 1c454f1 to 2aff1c8 Compare May 30, 2025 18:28
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 7804aab to fdfc71a Compare May 30, 2025 18:50
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch from 2aff1c8 to cff5c92 Compare June 3, 2025 00:30
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from fdfc71a to 40380b1 Compare June 3, 2025 00:31
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch 2 times, most recently from 786b240 to bc89945 Compare June 10, 2025 16:32
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 2d8ce0a to 43e3753 Compare June 24, 2025 14:09
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch from 2ba2ca1 to bd87bb8 Compare June 24, 2025 19:08
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from 43e3753 to d4f7490 Compare June 24, 2025 19:09
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch from bd87bb8 to eb4376b Compare June 24, 2025 19:23
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from d4f7490 to e2f11a4 Compare June 24, 2025 19:33
@eriktate eriktate force-pushed the eriktate/encrypted-recording-manager branch from 821079b to 189e643 Compare June 24, 2025 20:23
…tation with hooks to more efficiently lookup private keys given their respective public key
@eriktate eriktate force-pushed the eriktate/encrypted-recording-age-plugin branch from e2f11a4 to 92a6d14 Compare June 24, 2025 20:24
@eriktate eriktate added the no-changelog Indicates that a PR does not require a changelog entry label Jun 24, 2025
Base automatically changed from eriktate/encrypted-recording-manager to master June 24, 2025 21:23
@eriktate eriktate added this pull request to the merge queue Jun 24, 2025
Merged via the queue into master with commit 7b5e25b Jun 24, 2025
41 of 42 checks passed
@eriktate eriktate deleted the eriktate/encrypted-recording-age-plugin branch June 24, 2025 21:57
eriktate added a commit that referenced this pull request Jun 30, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Jul 1, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Jul 1, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Jul 1, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Aug 15, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Aug 27, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Sep 2, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Sep 2, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Sep 2, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
eriktate added a commit that referenced this pull request Sep 3, 2025
* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key
github-merge-queue Bot pushed a commit that referenced this pull request Sep 3, 2025
* adding support for encryption/decryption keys to keystore manager (#54428, #55652)

* adds new protos for resources related to encrypted session recordings and updates the existing SessionRecordingConfig protos to include a Status (#54780)

* adding local service implementation for recording encryption resources (#54816)

* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD (#55078)

* Adding session recording plugin for `age` (#55120)

* adding Manager for RecordingEncryption resources that handles shared ops more complex than CRUD

* adding age plugin wrapping default X25519 Identity/Recipient implementation with hooks to more efficiently lookup private keys given their respective public key

* Adding recording encryption and playback for `sync` modes (#54901)

* adding cache for RecordingEncryption (#55857)

* adding recording_encryption service protos (#55121)

* adding async recording encryption with gRPC multipart uploader (#55859)

* adding file configuration for encrypted session recording (#56200)

* Switching recording encryption to unwrap keys using direct keystore RSA decryption (#56776)

* adding manual key management config (#56920)

* updating protos for recording encryption (#57055)

* Add missing handling for recording encryption configs and keys (#57279)

* updating protos for recording encryption

* changing labels for encryption keys to prevent automatic cleanup, adjusting pkcs11 host UUID check to allow for key sharing of encryption keys, preventing cloud tenants from enabling manual key management, preventing use of recording encryption in FIPS mode

* adding new protos for rotated keys and the local service for interacting (#57576)

with them

* Switching encryption keys from PEM to ASN.1 DER encoding (#58137)

* using pregenerated RSA4096 key for keystore tests because generation is too slow (#58138)

* extending precomputed RSA keys to support 4096-bit keys (#58251)

* adding rotation process to Manager and exposing with new RPCs and (#57577)

* adding rotation sub commands for recording encryption keys and fixing (#57780)

broken session_recording_config when using fileconf

* using more reliable method of validating key bit length
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog Indicates that a PR does not require a changelog entry size/md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants