1strict digraph pkey {
2    bgcolor="transparent";
3    layout=circo
4
5    begin [label=start, color="#deeaee", style="filled"];
6    newed [fontcolor="#c94c4c", style="solid"];
7    digestsign [label="digest sign", fontcolor="#AB3910", color="#AB3910"]
8    verify [fontcolor="#F8CF2C", color="#F8CF2C"]
9    verifyrecover [label="verify recover", fontcolor="#B19FF9", color="#B19FF9"]
10    encrypt [fontcolor="#63AAC0", color="#63AAC0"]
11    decrypt [fontcolor="#425F06", color="#425F06"]
12    derive [fontcolor="#FEA303", color="#FEA303"]
13    encapsulate [fontcolor="#D95980", color="#D95980"]
14    decapsulate [fontcolor="#A16AE8", color="#A16AE8"]
15    paramgen [label="parameter\ngeneration", fontcolor="#2879C0", color="#2879C0"]
16    keygen [label="key\ngeneration", fontcolor="#2F7604", color="#2F7604"]
17
18    begin -> newed [label="EVP_PKEY_CTX_new"];
19
20    newed -> digestsign [label="EVP_PKEY_sign_init", color="#AB3910", fontcolor="#AB3910"];
21    digestsign -> digestsign [label="EVP_PKEY_sign", color="#AB3910", fontcolor="#AB3910"];
22
23    newed -> verify [label="EVP_PKEY_verify_init", fontcolor="#F8CF2C", color="#F8CF2C"];
24    verify -> verify [label="EVP_PKEY_verify", fontcolor="#F8CF2C", color="#F8CF2C"];
25
26    newed -> verifyrecover [label="EVP_PKEY_verify_recover_init", fontcolor="#B19FF9", color="#B19FF9"];
27    verifyrecover -> verifyrecover [label="EVP_PKEY_verify_recover", fontcolor="#B19FF9", color="#B19FF9"];
28
29    newed -> encrypt [label="EVP_PKEY_encrypt_init", fontcolor="#63AAC0", color="#63AAC0"];
30    encrypt -> encrypt [label="EVP_PKEY_encrypt", fontcolor="#63AAC0", color="#63AAC0"];
31
32    newed -> decrypt [label="EVP_PKEY_decrypt_init", fontcolor="#425F06", color="#425F06"];
33    decrypt -> decrypt [label="EVP_PKEY_decrypt", fontcolor="#425F06", color="#425F06"];
34
35    newed -> derive [label="EVP_PKEY_derive_init", fontcolor="#FEA303", color="#FEA303"];
36    derive -> derive [label="EVP_PKEY_derive\nEVP_PKEY_derive_set_peer", fontcolor="#FEA303", color="#FEA303"];
37
38    newed -> encapsulate [label="EVP_PKEY_encapsulate_init", fontcolor="#D95980", color="#D95980"];
39    encapsulate -> encapsulate [label="EVP_PKEY_encapsulate", fontcolor="#D95980", color="#D95980"];
40
41    newed -> decapsulate [label="EVP_PKEY_decapsulate_init", fontcolor="#A16AE8", color="#A16AE8"];
42    decapsulate -> decapsulate [label="EVP_PKEY_decapsulate", fontcolor="#A16AE8", color="#A16AE8"];
43
44    newed -> paramgen [label="EVP_PKEY_paramgen_init", fontcolor="#2879C0", color="#2879C0"];
45    paramgen -> paramgen [label="EVP_PKEY_paramgen\nEVP_PKEY_gen", fontcolor="#2879C0", color="#2879C0"];
46
47    newed -> keygen [label="EVP_PKEY_keygen_init", fontcolor="#2F7604", color="#2F7604"];
48    keygen -> keygen [label="EVP_PKEY_keygen\nEVP_PKEY_gen", fontcolor="#2F7604", color="#2F7604"];
49}
50