@startuml participant Client participant Proxy participant LIBJava participant GSS database ProxyDB Participant Server Client -> Server: ClientHello Proxy -> LIBJava: parseMsg(connecId,numPhase) LIBJava -> ProxyDB: getBytes(connecId,numPhase) ProxyDB --> LIBJava: byteArray=getBytes(connecId,numPhase) Server -> Client: ServerHello, Certificate, .. Proxy -> LIBJava: parseMsg(connecId,numPhase) LIBJava -> ProxyDB: getBytes(connecId,numPhase) ProxyDB --> LIBJava: byteArray=getBytes(connecId,numPhase) Proxy -> LIBJava: needCertSignature() LIBJava -> Proxy: AlgoSig,Signature=needCertSignature() Proxy -> GSS: needPrivateKey(AlgoSig,Signature) GSS-->Proxy: PrivateKey = needPrivateKey(AlgoSig,Signature) Proxy -> LIBJava: sendPrivateKey(PrivateKey) Client -> Server: ClientCert, ClientKeyExch, .. Proxy -> LIBJava: parseMsg(connecId,numPhase) LIBJava -> ProxyDB: getBytes(connecId,numPhase) ProxyDB --> LIBJava: byteArray=getBytes(connecId,numPhase) Client <-> Server: AppData Proxy -> LIBJava: parseMsg(connecId,numPhase) LIBJava -> ProxyDB: getBytes(connecId,numPhase) ProxyDB --> LIBJava: byteArray=getBytes(connecId,numPhase) LIBJava --> Proxy: xmlFile=parseMsg(connecId,numPhase) @enduml