@@ -154,11 +154,9 @@ def prompt_pin():
154154 slot_id = 11
155155 elif sys .argv [2 ] == '6b' :
156156 slot_id = 12
157- elif sys .argv [2 ] >= int ('25' ):
158- slot_id = int (sys .argv [2 ])
159157 except :
160- print ("setslot <id> < type> [value]" )
161- print ("<id> must be slot number 1a - 6b" )
158+ print ("setslot [id] [ type] [value]" )
159+ print ("[id] must be slot number 1a - 6b" )
162160 return
163161
164162 if sys .argv [3 ] == 'label' :
@@ -204,8 +202,8 @@ def prompt_pin():
204202 elif sys .argv [3 ] == 'addchar4' :
205203 only_key .setslot (slot_id , MessageField .NEXTKEY5 , sys .argv [4 ])
206204 else :
207- print ("setslot <id> < type> [value]" )
208- print ("< type> must be ['label', 'ecckeylabel', 'rsakeylabel', 'url', 'addchar1', 'delay1', 'username', 'addchar2', 'delay2', 'password', 'addchar3', 'delay3', '2fa', 'totpkey', 'addchar4', 'addchar5']" )
205+ print ("setslot [id] [ type] [value]" )
206+ print ("[ type] must be ['label', 'ecckeylabel', 'rsakeylabel', 'url', 'addchar1', 'delay1', 'username', 'addchar2', 'delay2', 'password', 'addchar3', 'delay3', '2fa', 'totpkey', 'addchar4', 'addchar5']" )
209207 return
210208 elif sys .argv [1 ] == 'wipeslot' :
211209 try :
@@ -233,19 +231,118 @@ def prompt_pin():
233231 slot_id = 11
234232 elif sys .argv [2 ] == '6b' :
235233 slot_id = 12
236- elif sys .argv [2 ] >= int ('25' ):
237- slot_id = int (sys .argv [2 ])
238234 except :
239- print ("wipeslot <id> " )
240- print ("<id> must be slot number 1a - 6b" )
235+ print ("wipeslot [id] " )
236+ print ("[id] must be slot number 1a - 6b" )
241237 return
242238 only_key .wipeslot (slot_id )
243239 elif sys .argv [1 ] == 'backupkey' :
244240 only_key .generate_backup_key ()
245241 elif sys .argv [1 ] == 'setkey' :
246- only_key .setkey (sys .argv [2 ], sys .argv [3 ], sys .argv [4 ])
242+ try :
243+ if sys .argv [2 ] == 'RSA1' :
244+ slot_id = 25
245+ elif sys .argv [2 ] == 'RSA2' :
246+ slot_id = 26
247+ elif sys .argv [2 ] == 'RSA3' :
248+ slot_id = 27
249+ elif sys .argv [2 ] == 'RSA4' :
250+ slot_id = 28
251+ elif sys .argv [2 ] == 'ECC1' :
252+ slot_id = 29
253+ elif sys .argv [2 ] == 'ECC2' :
254+ slot_id = 30
255+ elif sys .argv [2 ] == 'ECC3' :
256+ slot_id = 31
257+ elif sys .argv [2 ] == 'ECC4' :
258+ slot_id = 32
259+ elif sys .argv [2 ] == 'ECC5' :
260+ slot_id = 33
261+ elif sys .argv [2 ] == 'ECC6' :
262+ slot_id = 34
263+ elif sys .argv [2 ] == 'ECC7' :
264+ slot_id = 35
265+ elif sys .argv [2 ] == 'ECC8' :
266+ slot_id = 36
267+ elif sys .argv [2 ] == 'ECC9' :
268+ slot_id = 37
269+ elif sys .argv [2 ] == 'ECC10' :
270+ slot_id = 38
271+ elif sys .argv [2 ] == 'ECC11' :
272+ slot_id = 39
273+ elif sys .argv [2 ] == 'ECC12' :
274+ slot_id = 40
275+ elif sys .argv [2 ] == 'ECC13' :
276+ slot_id = 41
277+ elif sys .argv [2 ] == 'ECC14' :
278+ slot_id = 42
279+ elif sys .argv [2 ] == 'ECC15' :
280+ slot_id = 43
281+ elif sys .argv [2 ] == 'ECC16' :
282+ slot_id = 44
283+ elif sys .argv [2 ] == 'HMAC1' :
284+ slot_id = 58
285+ elif sys .argv [2 ] == 'HMAC2' :
286+ slot_id = 57
287+ except :
288+ print ("setkey [key id] [type]" )
289+ print ("[key id] must be a key number" )
290+ return
291+ if (sys .argv [3 ]== 'label' ):
292+ only_key .setslot (slot_id , MessageField .LABEL , sys .argv [4 ])
293+ else :
294+ only_key .setkey (str (slot_id ), sys .argv [3 ], sys .argv [4 ])
247295 elif sys .argv [1 ] == 'wipekey' :
248- only_key .wipekey (sys .argv [2 ])
296+ try :
297+ if sys .argv [2 ] == 'RSA1' :
298+ slot_id = 25
299+ elif sys .argv [2 ] == 'RSA2' :
300+ slot_id = 26
301+ elif sys .argv [2 ] == 'RSA3' :
302+ slot_id = 27
303+ elif sys .argv [2 ] == 'RSA4' :
304+ slot_id = 28
305+ elif sys .argv [2 ] == 'ECC1' :
306+ slot_id = 29
307+ elif sys .argv [2 ] == 'ECC2' :
308+ slot_id = 30
309+ elif sys .argv [2 ] == 'ECC3' :
310+ slot_id = 31
311+ elif sys .argv [2 ] == 'ECC4' :
312+ slot_id = 32
313+ elif sys .argv [2 ] == 'ECC5' :
314+ slot_id = 33
315+ elif sys .argv [2 ] == 'ECC6' :
316+ slot_id = 34
317+ elif sys .argv [2 ] == 'ECC7' :
318+ slot_id = 35
319+ elif sys .argv [2 ] == 'ECC8' :
320+ slot_id = 36
321+ elif sys .argv [2 ] == 'ECC9' :
322+ slot_id = 37
323+ elif sys .argv [2 ] == 'ECC10' :
324+ slot_id = 38
325+ elif sys .argv [2 ] == 'ECC11' :
326+ slot_id = 39
327+ elif sys .argv [2 ] == 'ECC12' :
328+ slot_id = 40
329+ elif sys .argv [2 ] == 'ECC13' :
330+ slot_id = 41
331+ elif sys .argv [2 ] == 'ECC14' :
332+ slot_id = 42
333+ elif sys .argv [2 ] == 'ECC15' :
334+ slot_id = 43
335+ elif sys .argv [2 ] == 'ECC16' :
336+ slot_id = 44
337+ elif sys .argv [2 ] == 'HMAC1' :
338+ slot_id = 58
339+ elif sys .argv [2 ] == 'HMAC2' :
340+ slot_id = 57
341+ except :
342+ print ("wipekey [key id] [type]" )
343+ print ("[key id] must be a key number" )
344+ return
345+ only_key .wipekey (str (slot_id ))
249346 elif sys .argv [1 ] == 'idletimeout' :
250347 only_key .setslot (1 , MessageField .IDLETIMEOUT , int (sys .argv [2 ]))
251348 elif sys .argv [1 ] == 'wipemode' :
@@ -462,11 +559,9 @@ def mprompt():
462559 slot_id = 11
463560 elif data [1 ] == '6b' :
464561 slot_id = 12
465- elif data [1 ] >= int ('25' ):
466- slot_id = int (data [1 ])
467562 except :
468- print ("setslot <id> < type> [value]" )
469- print ("<id> must be slot number 1a - 6b" )
563+ print ("setslot [id] [ type] [value]" )
564+ print ("[id] must be slot number 1a - 6b" )
470565 continue
471566 if data [2 ] == 'label' :
472567 only_key .setslot (slot_id , MessageField .LABEL , data [3 ])
@@ -511,8 +606,8 @@ def mprompt():
511606 elif data [2 ] == 'addchar4' :
512607 only_key .setslot (slot_id , MessageField .NEXTKEY3 , data [3 ])
513608 else :
514- print ("setslot <id> < type> [value]" )
515- print ("< type> must be ['label', 'ecckeylabel', 'rsakeylabel', 'url', 'addchar1', 'delay1', 'username', 'addchar2', 'delay2', 'password', 'addchar3', 'delay3', '2fa', 'totpkey', 'addchar4', 'addchar5']" )
609+ print ("setslot [id] [ type] [value]" )
610+ print ("[ type] must be ['label', 'ecckeylabel', 'rsakeylabel', 'url', 'addchar1', 'delay1', 'username', 'addchar2', 'delay2', 'password', 'addchar3', 'delay3', '2fa', 'totpkey', 'addchar4', 'addchar5']" )
516611 continue
517612 elif data [0 ] == 'wipeslot' :
518613 try :
@@ -540,11 +635,9 @@ def mprompt():
540635 slot_id = 11
541636 elif data [1 ] == '6b' :
542637 slot_id = 12
543- elif data [1 ] >= int ('25' ):
544- slot_id = int (data [1 ])
545638 except :
546- print ("wipeslot <id> " )
547- print ("<id> must be slot number 1a - 6b" )
639+ print ("wipeslot [id] " )
640+ print ("[id] must be slot number 1a - 6b" )
548641 continue
549642 only_key .wipeslot (slot_id )
550643 elif data [0 ] == 'backupkey' :
@@ -554,13 +647,114 @@ def mprompt():
554647 continue
555648 elif data [0 ] == 'setkey' :
556649 try :
557- key = prompt_pass ()
558- only_key .setkey (data [1 ], data [2 ], key )
650+ if data [1 ] == 'RSA1' :
651+ slot_id = 25
652+ elif data [1 ] == 'RSA2' :
653+ slot_id = 26
654+ elif data [1 ] == 'RSA3' :
655+ slot_id = 27
656+ elif data [1 ] == 'RSA4' :
657+ slot_id = 28
658+ elif data [1 ] == 'ECC1' :
659+ slot_id = 29
660+ elif data [1 ] == 'ECC2' :
661+ slot_id = 30
662+ elif data [1 ] == 'ECC3' :
663+ slot_id = 31
664+ elif data [1 ] == 'ECC4' :
665+ slot_id = 32
666+ elif data [1 ] == 'ECC5' :
667+ slot_id = 33
668+ elif data [1 ] == 'ECC6' :
669+ slot_id = 34
670+ elif data [1 ] == 'ECC7' :
671+ slot_id = 35
672+ elif data [1 ] == 'ECC8' :
673+ slot_id = 36
674+ elif data [1 ] == 'ECC9' :
675+ slot_id = 37
676+ elif data [1 ] == 'ECC10' :
677+ slot_id = 38
678+ elif data [1 ] == 'ECC11' :
679+ slot_id = 39
680+ elif data [1 ] == 'ECC12' :
681+ slot_id = 40
682+ elif data [1 ] == 'ECC13' :
683+ slot_id = 41
684+ elif data [1 ] == 'ECC14' :
685+ slot_id = 42
686+ elif data [1 ] == 'ECC15' :
687+ slot_id = 43
688+ elif data [1 ] == 'ECC16' :
689+ slot_id = 44
690+ elif data [1 ] == 'HMAC1' :
691+ slot_id = 58
692+ elif data [1 ] == 'HMAC2' :
693+ slot_id = 57
694+ except :
695+ print ("setkey [key id] [type]" )
696+ print ("[key id] must be a key number" )
697+ continue
698+ try :
699+ if (data [2 ]== 'label' ):
700+ only_key .setslot (slot_id , MessageField .LABEL , data [3 ])
701+ else :
702+ key = prompt_pass ()
703+ only_key .setkey (str (slot_id ), data [2 ], key )
559704 except :
560705 continue
561706 elif data [0 ] == 'wipekey' :
562707 try :
563- only_key .wipekey (data [1 ])
708+ if data [1 ] == 'RSA1' :
709+ slot_id = 25
710+ elif data [1 ] == 'RSA2' :
711+ slot_id = 26
712+ elif data [1 ] == 'RSA3' :
713+ slot_id = 27
714+ elif data [1 ] == 'RSA4' :
715+ slot_id = 28
716+ elif data [1 ] == 'ECC1' :
717+ slot_id = 29
718+ elif data [1 ] == 'ECC2' :
719+ slot_id = 30
720+ elif data [1 ] == 'ECC3' :
721+ slot_id = 31
722+ elif data [1 ] == 'ECC4' :
723+ slot_id = 32
724+ elif data [1 ] == 'ECC5' :
725+ slot_id = 33
726+ elif data [1 ] == 'ECC6' :
727+ slot_id = 34
728+ elif data [1 ] == 'ECC7' :
729+ slot_id = 35
730+ elif data [1 ] == 'ECC8' :
731+ slot_id = 36
732+ elif data [1 ] == 'ECC9' :
733+ slot_id = 37
734+ elif data [1 ] == 'ECC10' :
735+ slot_id = 38
736+ elif data [1 ] == 'ECC11' :
737+ slot_id = 39
738+ elif data [1 ] == 'ECC12' :
739+ slot_id = 40
740+ elif data [1 ] == 'ECC13' :
741+ slot_id = 41
742+ elif data [1 ] == 'ECC14' :
743+ slot_id = 42
744+ elif data [1 ] == 'ECC15' :
745+ slot_id = 43
746+ elif data [1 ] == 'ECC16' :
747+ slot_id = 44
748+ elif data [1 ] == 'HMAC1' :
749+ slot_id = 58
750+ elif data [1 ] == 'HMAC2' :
751+ slot_id = 57
752+ except :
753+ print ("wipekey [key id] [type]" )
754+ print ("[key id] must be a key number" )
755+ continue
756+ try :
757+ only_key .wipekey (str (slot_id ))
564758 except :
565759 continue
566760 elif data [0 ] == 'idletimeout' :
0 commit comments