Skip to content

Instantly share code, notes, and snippets.

@stevecheckoway
Created July 15, 2025 15:14
Show Gist options
  • Save stevecheckoway/39eec9309dd15d568248ea1bf06c9c20 to your computer and use it in GitHub Desktop.
Save stevecheckoway/39eec9309dd15d568248ea1bf06c9c20 to your computer and use it in GitHub Desktop.
Example showing strncpy not working as desired
root@53a1a0150ee1:~/api_key_manager# make
gcc -Wall -Wextra -O2 -o api_key_manager api_key_manager.c -lsqlite3 -lsodium
api_key_manager.c: In function 'add_key':
api_key_manager.c:97:5: warning: '__builtin_strncpy' specified bound 256 equals destination size [-Wstringop-truncation]
97 | strncpy(new_key.description, description, MAX_DESC_LEN);
| ^
root@53a1a0150ee1:~/api_key_manager# ./api_key_manager
No master key set. Please set a master key:
Master key set successfully
root@53a1a0150ee1:~/api_key_manager# ./api_key_manager -a "Encrypted key in description: $(perl -e 'print "A" x 256')"
Enter master key:
Enter API key: SUPER_SECRET_KEY
API key added successfully with ID: 1
root@53a1a0150ee1:~/api_key_manager# ./api_key_manager -l
Enter master key:
Stored API Keys:
ID Description
1 Encrypted key in description: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA��%�D=�i��AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw�a\��]9A��-��9�:&�޽�+�������
��;�(���
root@53a1a0150ee1:~/api_key_manager# ./api_key_manager -l | tee output
Enter master key:
Stored API Keys:
ID Description
1 Encrypted key in description: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA��%�D=�i��AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw�a\��]9A��-��9�:&�޽�+�������
��;�(���
root@53a1a0150ee1:~/api_key_manager# xxd output
00000000: 456e 7465 7220 6d61 7374 6572 206b 6579 Enter master key
00000010: 3a20 0a53 746f 7265 6420 4150 4920 4b65 : .Stored API Ke
00000020: 7973 3a0a 4944 0944 6573 6372 6970 7469 ys:.ID.Descripti
00000030: 6f6e 0a31 0945 6e63 7279 7074 6564 206b on.1.Encrypted k
00000040: 6579 2069 6e20 6465 7363 7269 7074 696f ey in descriptio
00000050: 6e3a 2041 4141 4141 4141 4141 4141 4141 n: AAAAAAAAAAAAA
00000060: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000070: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000080: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000090: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
000000a0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
000000b0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
000000c0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
000000d0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
000000e0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
000000f0: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000100: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000110: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000120: 4141 4141 4141 4141 4141 4141 4141 4141 AAAAAAAAAAAAAAAA
00000130: 4141 4141 4177 ea61 5caf ba5d 3941 87ce AAAAAw.a\..]9A..
00000140: 2d9f 8c39 d83a 26eb debd 802b fed1 1597 -..9.:&....+....
00000150: f081 c08e 1305 8b0d b214 9125 1180 443d ...........%..D=
00000160: fe69 d11a ae0a e6d1 3bd9 28a2 1e8d ff0a .i......;.(.....
root@53a1a0150ee1:~/api_key_manager#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment