cipher.dot 3.3 KB

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