Open jeffmur opened 5 months ago
classDiagram class SessionManager { -Strategy strategy -KeyExchangeManager manager startSession(strategy) : void endSession() : void } class Session { <<Abstract>> encrypt(plaintext, key) : void decrypt(plaintext, key) : void receiveEncryptedMessage() : String sendEncryptedMessage(message) : String } class Strategy { <<Enumeration>> +DH +RSA +AES } class RSASession { -RSAPublicKey publicKey -RSAPrivateKey privateKey encrypt(plaintext, key) : ciphertext decrypt(plaintext, key) : plaintext } class DHSession { -DHPublicKey publicKey -DHPrivateKey privateKey encrypt(plaintext, key) : ciphertext decrypt(plaintext, key) : plaintext } class AESSession { -AESPublicKey publicKey -AESPrivateKey privateKey encrypt(plaintext, key) : ciphertext decrypt(plaintext, key) : plaintext } SessionManager <|-- Session SessionManager <|-- Strategy Session <|-- RSASession Session <|-- DHSession Session <|-- AESSession