@startuml
Subscriber -> OLE: Decrypt(EncryptedData)
OLE -> KeyCache: Get(hash(EncryptionContext+AlgorithmID))
OLE <-- KeyCache: nil
OLE -> KMS: Decrypt(EncryptionContext, EncryptedDataKey)
OLE <-- KMS: PlaintextDataKey
OLE -> KeyCache: Put(hash(EncryptionContext+AlgorithmID), PlaintextDataKey)
Subscriber <-- OLE: PlaintextData
@enduml
