Module TryExcept body Import alias identifier Assign NameStore AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body Assign NameStore NameLoad FunctionDef arguments args defaults body Expr Str Global identifier TryExcept body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr handlers ExceptHandler type NameLoad body Assign NameStore AttributeLoad NameLoad attr Return ExceptHandler type AttributeLoad NameLoad attr name NameStore body If CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Raise Expr Call AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam defaults body If UnaryOpNot NameLoad body Return NameLoad Expr Call NameLoad TryExcept body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad handlers ExceptHandler type AttributeLoad NameLoad attr name NameStore body If CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Raise Return NameLoad If CompareIsNot NameLoad NameLoad body Return Call AttributeLoad NameLoad attr NameLoad Return NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If UnaryOpNot NameLoad body Return NameLoad Expr Call NameLoad TryExcept body Expr Call AttributeLoad NameLoad attr NameLoad NameLoad NameLoad handlers ExceptHandler type AttributeLoad NameLoad attr name NameStore body If CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Raise Return NameLoad decorator_list FunctionDef arguments args NameParam defaults body If UnaryOpNot NameLoad body Return TryExcept body Assign NameStore Call AttributeLoad NameLoad attr NameLoad NameLoad Expr Call AttributeLoad NameLoad attr NameLoad handlers ExceptHandler type NameLoad body Return ExceptHandler type AttributeLoad NameLoad attr name NameStore body If CompareNotEq SubscriptLoad AttributeLoad NameLoad attr Index Num AttributeLoad NameLoad attr body Raise decorator_list
N/A N/A N/A N/A keyutils _keyutils N/A _keyring N/A _keyutils KEY_SPEC_USER_KEYRING N/A N/A N/A ImportError N/A N/A _keyutils None _setupSession N/A N/A N/A N/A N/A 
    Link the user keyring into the session keyring. pam_keyinit.so normally
    does this by default, but do it again in case someone made a new session or
    the session was revoked.

    We want to add keys to the user keyring so that they are reachable across
    sessions, and continue to work after the session is revoked due to e.g.
    detaching from screen and closing SSH. But keys are created with
    permissions that require "possession" to read them, where possession means
    the key is reachable via the session keyring. If the session keyring is
    empty, adding a key to any other keyring means that key is not under
    possession and thus not readable even though we own it.

    The fix is to ensure the user keyring is always linked under the session
    keyring so that keys in the user keyring are reachable via the session
    keyring.
     N/A _keyring N/A N/A N/A N/A N/A _keyutils link N/A _keyutils KEY_SPEC_USER_KEYRING N/A _keyutils KEY_SPEC_SESSION_KEYRING N/A N/A N/A AttributeError N/A N/A _keyring N/A _keyutils KEY_SPEC_SESSION_KEYRING N/A N/A N/A N/A _keyutils Error N/A err N/A N/A N/A N/A N/A err args N/A 0 N/A _keyutils EKEYREVOKED N/A N/A N/A N/A N/A _keyutils join_session_keyring N/A N/A N/A _keyutils link N/A _keyutils KEY_SPEC_USER_KEYRING N/A _keyutils KEY_SPEC_SESSION_KEYRING N/A getPassword N/A N/A keyDesc N/A N/A N/A N/A _keyutils N/A N/A None N/A N/A _setupSession N/A N/A N/A keyId N/A N/A _keyutils request_key keyDesc _keyring N/A N/A N/A N/A _keyutils Error N/A err N/A N/A N/A N/A N/A err args N/A 0 N/A _keyutils EKEYREVOKED N/A N/A N/A None N/A N/A keyId None N/A N/A N/A N/A _keyutils read_key keyId N/A None N/A setPassword N/A N/A keyDesc passwd N/A N/A N/A N/A _keyutils N/A N/A passwd N/A N/A _setupSession N/A N/A N/A N/A N/A _keyutils add_key keyDesc passwd _keyring N/A N/A N/A N/A _keyutils Error N/A err N/A N/A N/A N/A N/A err args N/A 0 N/A _keyutils EKEYREVOKED N/A N/A N/A passwd N/A invalidatePassword N/A N/A keyDesc N/A N/A N/A N/A _keyutils N/A N/A N/A N/A N/A keyId N/A N/A _keyutils search _keyring keyDesc N/A N/A N/A _keyutils revoke keyId N/A N/A N/A AttributeError N/A N/A N/A N/A N/A _keyutils Error N/A err N/A N/A N/A N/A N/A err args N/A 0 N/A _keyutils EKEYREVOKED N/A N/A N/A