This figure is divided into halves by a dashed line. The top half is labeled Alice, and the bottom half is labeled Bob. The figure consists of boxes labeled as follows:
Labeled arrows connect these boxes:
init(): From Alice's Private Key to Key Agreement (DH)
                  doPhase(): From Bob's Public Key to Key Agreement (DH)
                  generateSecret(): From Key Agreement (DH) to Bytes
                  init(): From Bob's Private Key to Key Agreement (DH)
                  doPhase(): From Alice's Public Key to Key Agreement (DH)
                  generateSecret(): From Key Agreement (DH) to Bytes
                  A double-headed arrow joins the Bytes boxes in Alice's and Bob's halves. This arrow is labeled "Should be the same."
init(): From key length to Key Generator (AES)
            init(): From AlgorithmParameterSpec to Key Generator (AES)
            generateKey(): From Key Generator (AES) to Secret Pair