digraph G { 
    {
        m [style=filled fillcolor=yellowgreen fontcolor=white  label="Master Password" shape=underline]
        salt [style=filled fillcolor=yellowgreen fontcolor=white  label="Salt(Email)" shape=underline]
        kdf [label="PBKDF2, 600000its" shape=component]
        masterKey [style=filled fillcolor=green fontcolor=white  label="Master Key(256 bits)" shape=underline]
        hkdf [label="HKDF" shape=component]
        stretchedMasterKey [style=filled fillcolor=green fontcolor=white  label="Stretched Master Key(512 bits)" shape=underline]
        csprng [label="CSPRNG" shape=component]
        symmetricKey [style=filled fillcolor=green fontcolor=white  label="{{Generated Symmetric Key}| {Encryption Key(256 bits)|MAC Key(256 bits)}}" shape=record]
        iv [style=filled fillcolor=green fontcolor=white  label="IV(128 bits)" shape=underline]
        keyEncription  [label="Key Encryption(AES 256)" shape=component]
        protectedSymmetricKey [style=filled fillcolor=green fontcolor=white  label="Protected Symmetric Key" shape=underline]
    }
    m -> kdf
    salt -> kdf
    kdf -> masterKey
    masterKey -> hkdf
    hkdf -> stretchedMasterKey
    csprng -> symmetricKey
    csprng -> iv
    iv -> keyEncription [label="iv"]
    stretchedMasterKey -> keyEncription [label="key"]
    symmetricKey -> keyEncription [label="payload"]
    keyEncription -> protectedSymmetricKey 
}