Home | History | Annotate | Line # | Download | only in life-cycles
      1  1.1  christos digraph cipher {
      2  1.1  christos     bgcolor="transparent";
      3  1.1  christos 
      4  1.1  christos     begin [label=start, color="#deeaee", style="filled"];
      5  1.1  christos     newed [fontcolor="#c94c4c", style="solid"];
      6  1.1  christos 
      7  1.1  christos     initialised [fontcolor="#c94c4c"];
      8  1.1  christos     updated [fontcolor="#c94c4c"];
      9  1.1  christos     finaled [fontcolor="#c94c4c"];
     10  1.1  christos     end [label="freed", color="#deeaee", style="filled"];
     11  1.1  christos 
     12  1.1  christos     d_initialised [label="initialised\n(decryption)", fontcolor="#c94c4c"];
     13  1.1  christos     d_updated [label="updated\n(decryption)", fontcolor="#c94c4c"];
     14  1.1  christos     e_initialised [label="initialised\n(encryption)", fontcolor="#c94c4c"];
     15  1.1  christos     e_updated [label="updated\n(encryption)", fontcolor="#c94c4c"];
     16  1.1  christos 
     17  1.1  christos     begin -> newed [label="EVP_CIPHER_CTX_new"];
     18  1.1  christos     newed -> initialised [label="EVP_CipherInit"];
     19  1.1  christos     initialised -> initialised [label="EVP_CipherInit\n(not required but allowed)",
     20  1.1  christos                                 style=dashed];
     21  1.1  christos     initialised -> updated [label="EVP_CipherUpdate", weight=2];
     22  1.1  christos     updated -> updated [label="EVP_CipherUpdate"];
     23  1.1  christos     updated -> finaled [label="EVP_CipherFinal"];
     24  1.1  christos     finaled -> finaled [label="EVP_CIPHER_CTX_get_params\n(AEAD encryption)",
     25  1.1  christos                         style=dashed];
     26  1.1  christos     finaled -> end [label="EVP_CIPHER_CTX_free"];
     27  1.1  christos     newed -> d_initialised [label="EVP_DecryptInit"];
     28  1.1  christos     d_initialised -> d_initialised [label="EVP_DecryptInit\n(not required but allowed)",
     29  1.1  christos                                 style=dashed];
     30  1.1  christos     d_initialised -> d_updated [label="EVP_DecryptUpdate", weight=2];
     31  1.1  christos     d_updated -> d_updated [label="EVP_DecryptUpdate"];
     32  1.1  christos     d_updated -> finaled [label="EVP_DecryptFinal"];
     33  1.1  christos     newed -> e_initialised [label="EVP_EncryptInit"];
     34  1.1  christos     e_initialised -> e_initialised [label="EVP_EncryptInit\n(not required but allowed)",
     35  1.1  christos                                 style=dashed];
     36  1.1  christos     e_initialised -> e_updated [label="EVP_EncryptUpdate", weight=2];
     37  1.1  christos     e_updated -> e_updated [label="EVP_EncryptUpdate"];
     38  1.1  christos     e_updated -> finaled [label="EVP_EncryptFinal"];
     39  1.1  christos     most -> newed [label="EVP_CIPHER_CTX_reset", style=dashed,
     40  1.1  christos                       color="#034f84", fontcolor="#034f84"];
     41  1.1  christos     most [label="any of the initialised\nupdated or finaled states", style=dashed,
     42  1.1  christos                       color="#034f84", fontcolor="#034f84"];
     43  1.1  christos }
     44  1.1  christos 
     45  1.1  christos /* This is a version with a single flavour which is easier to comprehend
     46  1.1  christos digraph cipher {
     47  1.1  christos     bgcolor="transparent";
     48  1.1  christos 
     49  1.1  christos     begin [label=start, color="#deeaee", style="filled"];
     50  1.1  christos     newed [fontcolor="#c94c4c", style="solid"];
     51  1.1  christos     initialised [fontcolor="#c94c4c"];
     52  1.1  christos     updated [fontcolor="#c94c4c"];
     53  1.1  christos     finaled [fontcolor="#c94c4c"];
     54  1.1  christos     end [label="freed", color="#deeaee", style="filled"];
     55  1.1  christos 
     56  1.1  christos     begin -> newed [label="EVP_CIPHER_CTX_new"];
     57  1.1  christos     newed -> initialised [label="EVP_CipherInit"];
     58  1.1  christos     initialised -> initialised [label="EVP_CipherInit\n(not required but allowed)",
     59  1.1  christos                                 style=dashed];
     60  1.1  christos     initialised -> updated [label="EVP_CipherUpdate", weight=2];
     61  1.1  christos     updated -> updated [label="EVP_CipherUpdate"];
     62  1.1  christos     updated -> finaled [label="EVP_CipherFinal"];
     63  1.1  christos     finaled -> finaled [label="EVP_CIPHER_CTX_get_params\n(AEAD encryption)",
     64  1.1  christos                         style=dashed];
     65  1.1  christos     finaled -> end [label="EVP_CIPHER_CTX_free"];
     66  1.1  christos     finaled -> newed [label="EVP_CIPHER_CTX_reset", style=dashed,
     67  1.1  christos                       color="#034f84", fontcolor="#034f84"];
     68  1.1  christos     updated -> newed [label="EVP_CIPHER_CTX_reset", style=dashed,
     69  1.1  christos                       color="#034f84", fontcolor="#034f84"];
     70  1.1  christos }
     71  1.1  christos */
     72  1.1  christos 
     73