(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:tid)
          op: assign_op.Equal
          rhs: {(DQ <'convert keys'>)}
          spids: [7]
        )
      ]
    )
    (command.ForEach
      iter_name: t
      iter_words: [{<rsa>} {<dsa>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<trace>} {(DQ <'generating '> ($ Id.VSub_DollarName '$t') <' key'>)})
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key>})
            (C {(${ Id.VSub_Name SSHKEYGEN)} {<-q>} {<-N>} {(DQ )} {<-t>} {($ Id.VSub_DollarName '$t')} 
              {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key>}
            )
            (C {<trace>} {(DQ <'export '> ($ Id.VSub_DollarName '$t') <' private to rfc4716 public'>)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {(${ Id.VSub_Name SSHKEYGEN)}
                    {<-q>}
                    {<-e>}
                    {<-f>}
                    {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: 
                        {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc>}
                    )
                  ]
                  do_fork: T
                )
                (C {<fail>} 
                  {(DQ <'export '> ($ Id.VSub_DollarName '$t') <' private to rfc4716 public'>)}
                )
              ]
            )
            (C {<trace>} {(DQ <'export '> ($ Id.VSub_DollarName '$t') <' public to rfc4716 public'>)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {(${ Id.VSub_Name SSHKEYGEN)}
                    {<-q>}
                    {<-e>}
                    {<-f>}
                    {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key.pub>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: 
                        {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc.pub>}
                    )
                  ]
                  do_fork: T
                )
                (C {<fail>} {(DQ ($ Id.VSub_DollarName '$t') <' public to rfc4716 public'>)})
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<cmp>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc>} 
                  {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc.pub>}
                )
                (C {<fail>} 
                  {
                    (DQ ($ Id.VSub_DollarName '$t') 
                      <' rfc4716 exports differ between public and private'>
                    )
                  }
                )
              ]
            )
            (C {<trace>} {(DQ <'import '> ($ Id.VSub_DollarName '$t') <' rfc4716 public'>)})
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [
                    {(${ Id.VSub_Name SSHKEYGEN)}
                    {<-q>}
                    {<-i>}
                    {<-f>}
                    {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc>}
                  ]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: 
                        {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') 
                          <-rfc-imported>
                        }
                    )
                  ]
                  do_fork: T
                )
                (C {<fail>} {(DQ ($ Id.VSub_DollarName '$t') <' import rfc4716 public'>)})
              ]
            )
            (command.Simple
              words: [
                {<cut>}
                {<-f1> <Id.Lit_Comma ','> <2>}
                {<-d>}
                {(DQ <' '>)}
                {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key.pub>}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: 
                    {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') 
                      <-key-nocomment.pub>
                    }
                )
              ]
              do_fork: T
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<cmp>} 
                  {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-nocomment.pub>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-rfc-imported>}
                )
                (C {<fail>} {(DQ ($ Id.VSub_DollarName '$t') <' imported differs from original'>)})
              ]
            )
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key>} 
              {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key.pub>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc>} 
              {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-rfc.pub>} {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-rfc-imported>} 
              {($ Id.VSub_DollarName '$OBJ') <'/'> ($ Id.VSub_DollarName '$t') <-key-nocomment.pub>}
            )
          ]
        )
    )
  ]
)