(CommandList children: [ (FuncDef name: k_gpg_list_keys_public body: (BraceGroup children: [ (Pipeline children: [ (C {(GPG_BIN)} {(--batch)} {(--no-tty)} {(--with-colons)} {(--list-public-keys)} {(--)} {(DQ ($ VSub_At '$@'))} ) (C {(grep)} {(DQ ('^pub:'))}) (SimpleCommand words: [{(cut)} {(-d)} {(DQ (':'))} {(-f)} {(5)}] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] negated: F ) ] spids: [41] ) spids: [37 40] ) (FuncDef name: k_gpg_list_keys_secret body: (BraceGroup children: [ (Pipeline children: [ (C {(GPG_BIN)} {(--batch)} {(--no-tty)} {(--with-colons)} {(--list-secret-keys)} {(--)} {(DQ ($ VSub_At '$@'))} ) (C {(grep)} {(DQ ('^sec:'))}) (SimpleCommand words: [{(cut)} {(-d)} {(DQ (':'))} {(-f)} {(5)}] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] negated: F ) ] spids: [113] ) spids: [109 112] ) (FuncDef name: k_gpg_create body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:name) op:Equal spids:[208]) (assign_pair lhs:(LhsName name:email) op:Equal spids:[210]) (assign_pair lhs:(LhsName name:comment) op:Equal spids:[212]) (assign_pair lhs:(LhsName name:passphraseLine) op:Equal spids:[214]) (assign_pair lhs:(LhsName name:gpgOut) op:Equal spids:[216]) (assign_pair lhs:(LhsName name:result) op:Equal spids:[218]) ] spids: [206] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [222] ) ] spids: [222] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:email) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [230] ) ] spids: [230] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:comment) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 3> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)}) spids: [240 243] ) ) } spids: [238] ) ] spids: [238] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:commentLine) op:Equal rhs:{(DQ )} spids:[247])] spids: [247] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passphrase) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 4> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(EmptyPart)}) spids: [254 257] ) ) } spids: [252] ) ] spids: [252] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passphraseLine) op: Equal rhs: {(DQ )} spids: [261] ) ] spids: [261] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name comment))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:commentLine) op: Equal rhs: {(DQ ('Name-Comment: ') (${ VSub_Name comment))} spids: [285] ) ] spids: [285] ) ] spids: [16777215 282] ) ] spids: [16777215 294] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name passphrase))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passphraseLine) op: Equal rhs: {(DQ ('Passphrase: ') (${ VSub_Name passphrase))} spids: [316] ) ] spids: [316] ) ] spids: [16777215 313] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passphraseLine) op: Equal rhs: {(DQ ('%no-protection'))} spids: [328] ) ] spids: [328] ) ] spids: [325 334] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:gpgOut) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(GPG_BIN)} {(--no-tty)} {(--batch)} {(--generate-key)}] redirects: [ (Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) (HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 here_begin: {(EOT)} here_end_span_id: 378 stdin_parts: [ ('Key-Type: RSA\n') ('Key-Length: 2048\n') ('Name-Real: ') (${ VSub_Name name) ('\n') (${ VSub_Name commentLine) ('\n') ('Name-Email: ') (${ VSub_Name email) ('\n') (${ VSub_Name passphraseLine) ('\n') ('Expire-Date: 0\n') ('%commit\n') ] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [340 379] ) ) } spids: [338] ) ] spids: [338] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: {($ VSub_QMark '$?')} spids: [384] ) ] spids: [384] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name result)} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name gpgOut))}) (C {(head)} {(-n)} {(1)} {(-)}) (C {(cut)} {(--delimiter)} {(DQ (' '))} {(--fields)} {(3)}) ] negated: F ) ] spids: [16777215 404] ) ] spids: [16777215 440] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(${ VSub_Name result)} ) ] spids: [203] ) spids: [199 202] ) (FuncDef name: k_gpg_password_prompt body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:gpgKey) op:Equal spids:[483])] spids: [481] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:gpgKey) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [487] ) ] spids: [487] ) (C {(GPG_BIN)} {(--quiet)} {(--edit-key)} {(--)} {(DQ (${ VSub_Name gpgKey))} {(passwd)} {(save)} ) ] spids: [478] ) spids: [474 477] ) (FuncDef name: k_gpg_export_armored body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:key) op:Equal spids:[550]) (assign_pair lhs:(LhsName name:destination) op:Equal spids:[552]) ] spids: [548] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:key) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [556] ) ] spids: [556] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:destination) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [564] ) ] spids: [564] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name destination))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:destination) op: Equal rhs: {(DQ (${ VSub_Name destination) (/) (${ VSub_Name key) (.asc))} spids: [591] ) ] spids: [591] ) ] spids: [16777215 588] ) ] spids: [16777215 604] ) (SimpleCommand words: [{(GPG_BIN)} {(--armor)} {(--export)} {(--)} {(DQ (${ VSub_Name key))}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ (${ VSub_Name destination))} ) ] ) ] spids: [545] ) spids: [541 544] ) (FuncDef name: k_gpg_export body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:key) op:Equal spids:[666]) (assign_pair lhs:(LhsName name:destination) op:Equal spids:[668]) ] spids: [664] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:key) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [672] ) ] spids: [672] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:destination) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [680] ) ] spids: [680] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name destination))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:destination) op: Equal rhs: {(DQ (${ VSub_Name destination) (/) (${ VSub_Name key) (.gpg))} spids: [707] ) ] spids: [707] ) ] spids: [16777215 704] ) ] spids: [16777215 720] ) (SimpleCommand words: [{(GPG_BIN)} {(--export)} {(--)} {(DQ (${ VSub_Name key))}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ (${ VSub_Name destination))} ) ] ) ] spids: [661] ) spids: [657 660] ) (FuncDef name: k_gpg_search_keys body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:query) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [777] ) ] spids: [775] ) (SimpleCommand words: [ {(GPG_BIN)} {(--no-tty)} {(--with-colons)} {(--batch)} {(--search-keys)} {(--)} {(DQ (${ VSub_Name query))} ] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] spids: [772] ) spids: [768 771] ) (FuncDef name: k_gpg_receive_keys body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [ {(GPG_BIN)} {(--no-tty)} {(--batch)} {(--receive-keys)} {(--)} {(DQ ($ VSub_At '$@'))} ] redirects: [(Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})] ) (C {(head)} {(-n)} {(-2)}) (C {(cut)} {(-c)} {(6-)}) ] negated: F ) ] spids: [833] ) spids: [829 832] ) (FuncDef name: k_gpg_keyid_valid body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:keyId) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [902] ) ] spids: [900] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name keyId> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{('0x*')}) spids: [913 917] ) ) } {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) (Subshell child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} { (BracedVarSub token: <VSub_Name keyId> prefix_op: VSub_Pound spids: [932 935] ) } {(-eq)} {(10)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} { (BracedVarSub token: <VSub_Name keyId> prefix_op: VSub_Pound spids: [947 950] ) } {(-eq)} {(18)} {(Lit_Other ']')} ) ] ) spids: [929 957] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keyId) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name keyId> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(0x)}) spids: [965 969] ) ) } spids: [963] ) ] spids: [963] ) ] spids: [16777215 960] ) ] spids: [16777215 973] ) (AndOr ops: [Op_DAmp] children: [ (Subshell child: (AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} { (BracedVarSub token: <VSub_Name keyId> prefix_op: VSub_Pound spids: [979 982] ) } {(-eq)} {(8)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} { (BracedVarSub token: <VSub_Name keyId> prefix_op: VSub_Pound spids: [994 997] ) } {(-eq)} {(16)} {(Lit_Other ']')} ) ] ) spids: [976 1004] ) (C {(Lit_Other '[')} {(DQ (${ VSub_Name keyId))} {(Lit_Other '=')} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(printf)} {(DQ ('%s'))} {(DQ (${ VSub_Name keyId))}) (C {(tr)} {(-c)} {(-d)} {(SQ <ABCDEFabcdef0123456789>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1019 1043] ) ) } {(Lit_Other ']')} ) ] ) ] spids: [897] ) spids: [893 896] ) ] )