VaultEnvelopeEncryptor.RotateAsync mints a fresh data-encryption key and advances the keyring, but never rotates the Transit key-encryption key (KEK) nor rewraps the stored wrapped-DEKs onto a newer KEK version. Add an opt-in KEK-hygiene step:
Gate behind an option (e.g. RewrapKeyringOnRotation).
VaultEnvelopeEncryptor.RotateAsyncmints a fresh data-encryption key and advances the keyring, but never rotates the Transit key-encryption key (KEK) nor rewraps the stored wrapped-DEKs onto a newer KEK version. Add an opt-in KEK-hygiene step:POST transit/keys/:name/rotate).transit/rewrapeach wrapped DEK in the keyring secret onto the latest KEK version (VaultSharp exposesRewrapAsync). The DEK values are unchanged, so existing rows stay readable — this only re-protects the keyring secret.Gate behind an option (e.g.
RewrapKeyringOnRotation).