Skip to content

Commit 0f88507

Browse files
committed
feat: Add eraseall command to nrfcredstore CLI
Signed-off-by: Maximilian Deubel <[email protected]>
1 parent 87d26a4 commit 0f88507

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/nrfcredstore/cli.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ def parse_args(in_args):
5353
delete_parser.add_argument('type', choices=KEY_TYPES,
5454
help='Key type to delete')
5555

56+
deleteall_parser = subparsers.add_parser('deleteall', help='Delete all keys in a secure tag')
57+
5658
# add generate command and args
5759
generate_parser = subparsers.add_parser('generate', help='Generate private key')
5860
generate_parser.add_argument('tag', type=int,
@@ -89,6 +91,15 @@ def exec_cmd(args, credstore):
8991
ct = CredType[args.type]
9092
if credstore.delete(args.tag, ct):
9193
print(f'{ct.name} in secure tag {args.tag} deleted')
94+
elif args.subcommand=='deleteall':
95+
creds = credstore.list(None, CredType.ANY)
96+
if not creds:
97+
raise RuntimeError(f'No keys found in secure tag {args.tag}')
98+
for c in creds:
99+
if c.tag in [4294967292, 4294967293, 4294967294]:
100+
continue # Skip reserved tags
101+
credstore.delete(c.tag, c.type)
102+
print(f'All credentials deleted.')
92103
elif args.subcommand=='generate':
93104
credstore.keygen(args.tag, args.file, args.attributes)
94105
print(f'New private key generated in secure tag {args.tag}')

0 commit comments

Comments
 (0)