55 -k|--key <keyspec>
66 [-c|--cert <certspec>]
77 [-o|--output <output>]
8+ [-p|--pos <signature element position>]
89 [<xml-file to be signed>]
910"""
1011
@@ -31,7 +32,7 @@ def sign_cmd():
3132 opts = None
3233 args = None
3334 try :
34- opts , args = getopt .getopt (sys .argv [1 :], 'hk:c:o:r:' ,
35+ opts , args = getopt .getopt (sys .argv [1 :], 'hk:c:o:r:p: ' ,
3536 ['help' ,
3637 'key=' ,
3738 'cert=' ,
@@ -40,7 +41,8 @@ def sign_cmd():
4041 'output=' ,
4142 'loglevel=' ,
4243 'logfile=' ,
43- 'reference=' ])
44+ 'reference=' ,
45+ 'pos=' ])
4446 except getopt .error as msg :
4547 print (msg )
4648 print (__doc__ )
@@ -53,6 +55,7 @@ def sign_cmd():
5355 loglevel = logging .WARN
5456 logfile = None
5557 do_xinclude = False
58+ insert_index = 0
5659 for o , a in opts :
5760 if o in ('-h' , '--help' ):
5861 print (__doc__ )
@@ -76,6 +79,8 @@ def sign_cmd():
7679 raise ValueError ('Invalid log level: %s' % a )
7780 elif o in '--logfile' :
7881 logfile = a
82+ elif o in ('-p' ,'--pos' ):
83+ insert_index = int (a )
7984
8085 log_args = {'level' : loglevel }
8186 if logfile is not None :
@@ -101,13 +106,13 @@ def _resolve_reference_uri(ref, t): # can probably be improved a bit
101106 if do_xinclude :
102107 t .xinclude ()
103108 reference_uri = _resolve_reference_uri (reference , t )
104- signed = sign (t , keyspec , certspec , reference_uri = reference_uri )
109+ signed = sign (t , keyspec , certspec , reference_uri = reference_uri , insert_index = insert_index )
105110 if signed :
106111 serialize (signed , stream = output )
107112 else :
108113 t = etree .parse (sys .stdin )
109114 reference_uri = _resolve_reference_uri (reference , t )
110- signed = sign (t , keyspec , certspec , reference_uri = reference_uri )
115+ signed = sign (t , keyspec , certspec , reference_uri = reference_uri , insert_index = insert_index )
111116 if signed :
112117 serialize (signed , stream = output )
113118
0 commit comments