(command.CommandList children: [ (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {($ Id.VSub_Number 0)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'/conf.sh'> } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'base='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'base='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {($ Id.VSub_Number 0)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'sectors='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sectors='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sectors='> name:sectors) op: assign_op.Equal rhs: {<100>} ) ] redirects: [] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'keyfile='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keyfile='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keyfile='> name:keyfile) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [{<mktemp>} {($ Id.VSub_DollarName base) <.XXXXXX>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'rnd='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'rnd='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rnd='> name:rnd) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [{<mktemp>} {($ Id.VSub_DollarName base) <.XXXXXX>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ops: [<Id.Op_DPipe _>] ) (command.ShFunction name_tok: <do_test> name: do_test body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ealgo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ealgo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ealgo='> name:ealgo) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keylen='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keylen='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keylen='> name:keylen) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'expected_ealgo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected_ealgo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expected_ealgo='> name:expected_ealgo) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'expected_keylen='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected_keylen='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'expected_keylen='> name: expected_keylen ) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.Simple blame_tok: <geli> more_env: [] words: [ {<geli>} {<init>} {<-B>} {<none>} {<-e>} {($ Id.VSub_DollarName ealgo)} {<-l>} {($ Id.VSub_DollarName keylen)} {<-P>} {<-K>} {($ Id.VSub_DollarName keyfile)} {<md> (${ Id.VSub_Name no)} ] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <geli> more_env: [] words: [ {<geli>} {<attach>} {<-p>} {<-k>} {($ Id.VSub_DollarName keyfile)} {<md> (${ Id.VSub_Name no)} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'real_ealgo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'real_ealgo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'real_ealgo='> name:real_ealgo) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <geli> more_env: [] words: [{<geli>} {<list>} {<md> (${ Id.VSub_Name no) <.eli>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'/EncryptionAlgorithm/ {print $2}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'real_keylen='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'real_keylen='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'real_keylen='> name:real_keylen) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <geli> more_env: [] words: [{<geli>} {<list>} {<md> (${ Id.VSub_Name no) <.eli>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'/KeyLength/ {print $2}'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name real_ealgo)} {<Id.Lit_Equals '='>} {(${ Id.VSub_Name expected_ealgo)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'ok '> ($ Id.VSub_DollarName i) <' - '> (${ Id.VSub_Name ealgo) <' aliased to '> (${ Id.VSub_Name real_ealgo) ) } ] redirects: [] do_fork: T ) ] spids: [185 202] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'not ok '> ($ Id.VSub_DollarName i) <' - expected '> (${ Id.VSub_Name expected_ealgo) <' but got '> (${ Id.VSub_Name real_ealgo) ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name real_keylen)} {<Id.Lit_Equals '='>} {(${ Id.VSub_Name expected_keylen)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'ok '> ($ Id.VSub_DollarName i) <' - keylen='> (${ Id.VSub_Name keylen) <' for ealgo='> (${ Id.VSub_Name ealgo) <' aliases to '> (${ Id.VSub_Name real_keylen) ) } ] redirects: [] do_fork: T ) ] spids: [253 270] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'not ok '> ($ Id.VSub_DollarName i) <' - expected '> (${ Id.VSub_Name expected_keylen) <' but got '> (${ Id.VSub_Name real_keylen) ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'i='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Plus left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 1>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <geli> more_env: [] words: [{<geli>} {<detach>} {<md> (${ Id.VSub_Name no)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <1..38>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'i='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <mdconfig> more_env: [] words: [{<mdconfig>} {<-a>} {<-t>} {<malloc>} {<-s>} {<1024k>} {<-u>} {($ Id.VSub_DollarName no)}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/random'>} {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name keyfile)} {<Id.Lit_VarLike 'bs='> <512>} {<Id.Lit_VarLike 'count='> <16>} ] redirects: [ (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [spec] iterable: (for_iter.Words words: [ {<aes> <Id.Lit_Colon ':'> <0> <Id.Lit_Colon ':'> <AES-XTS> <Id.Lit_Colon ':'> <128>} {<aes> <Id.Lit_Colon ':'> <128> <Id.Lit_Colon ':'> <AES-XTS> <Id.Lit_Colon ':'> <128>} {<aes> <Id.Lit_Colon ':'> <256> <Id.Lit_Colon ':'> <AES-XTS> <Id.Lit_Colon ':'> <256>} {<3des> <Id.Lit_Colon ':'> <0> <Id.Lit_Colon ':'> <3DES-CBC> <Id.Lit_Colon ':'> <192>} {<3des> <Id.Lit_Colon ':'> <192> <Id.Lit_Colon ':'> <3DES-CBC> <Id.Lit_Colon ':'> <192>} {<blowfish> <Id.Lit_Colon ':'> <0> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <128>} {<blowfish> <Id.Lit_Colon ':'> <128> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <128> } {<blowfish> <Id.Lit_Colon ':'> <160> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <160> } {<blowfish> <Id.Lit_Colon ':'> <192> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <192> } {<blowfish> <Id.Lit_Colon ':'> <224> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <224> } {<blowfish> <Id.Lit_Colon ':'> <256> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <256> } {<blowfish> <Id.Lit_Colon ':'> <288> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <288> } {<blowfish> <Id.Lit_Colon ':'> <352> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <352> } {<blowfish> <Id.Lit_Colon ':'> <384> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <384> } {<blowfish> <Id.Lit_Colon ':'> <416> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <416> } {<blowfish> <Id.Lit_Colon ':'> <448> <Id.Lit_Colon ':'> <Blowfish-CBC> <Id.Lit_Colon ':'> <448> } {<camellia> <Id.Lit_Colon ':'> <0> <Id.Lit_Colon ':'> <CAMELLIA-CBC> <Id.Lit_Colon ':'> <128>} {<camellia> <Id.Lit_Colon ':'> <128> <Id.Lit_Colon ':'> <CAMELLIA-CBC> <Id.Lit_Colon ':'> <128> } {<camellia> <Id.Lit_Colon ':'> <256> <Id.Lit_Colon ':'> <CAMELLIA-CBC> <Id.Lit_Colon ':'> <256> } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'ealgo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ealgo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ealgo='> name:ealgo) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName spec)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d>} {<Id.Lit_Colon ':'>} {<-f>} {<1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'keylen='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'keylen='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keylen='> name:keylen) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName spec)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d>} {<Id.Lit_Colon ':'>} {<-f>} {<2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'expected_ealgo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected_ealgo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expected_ealgo='> name:expected_ealgo) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName spec)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d>} {<Id.Lit_Colon ':'>} {<-f>} {<3>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'expected_keylen='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected_keylen='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'expected_keylen='> name: expected_keylen ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_DollarName spec)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d>} {<Id.Lit_Colon ':'>} {<-f>} {<4>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <do_test> more_env: [] words: [ {<do_test>} {($ Id.VSub_DollarName ealgo)} {($ Id.VSub_DollarName keylen)} {($ Id.VSub_DollarName expected_ealgo)} {($ Id.VSub_DollarName expected_keylen)} ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {($ Id.VSub_DollarName keyfile)}] redirects: [] do_fork: T ) ] )