Compare commits
58 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 592d54728b | |||
| 21b3c4de52 | |||
| 3a854c3ccf | |||
| 877add0dbf | |||
| 482687cb68 | |||
| e35d94243e | |||
| e88e1b5d3d | |||
| 41ef97c43e | |||
| 7810e66114 | |||
| b4be05c34d | |||
| 1cb0ba935d | |||
| 8c8c873e73 | |||
| 692f65b7f0 | |||
| 1c4200a73a | |||
| 1c9e2ee527 | |||
| 8401e14ae0 | |||
| 0dbd81d1cc | |||
| f979789c11 | |||
| 498d7d31c4 | |||
| e58f05619e | |||
| 992b9349b3 | |||
| 1f4a1fb90f | |||
| c7fae1ad1d | |||
| 37bcb6a6d2 | |||
| 9ded0aed44 | |||
| 4442837ce8 | |||
| 31ee220558 | |||
| 0a25c13b65 | |||
| fd9d87c548 | |||
| c1aa29cd73 | |||
| 75e52d48dc | |||
| 28947a53a3 | |||
| 5a611a9dc0 | |||
| aff8bea0a2 | |||
| 864c0356da | |||
| 35175790e2 | |||
| 04ea4fb848 | |||
| 5c61ba7ea8 | |||
| a45b304d22 | |||
| 403d013224 | |||
| 82533d96e4 | |||
| 5b619384a1 | |||
| 12b9884572 | |||
| 83b60b5cc2 | |||
| 2d6546ab83 | |||
| c255185084 | |||
| 24800d69d5 | |||
| 7e50727163 | |||
| f118c23c60 | |||
| b149175f24 | |||
| 206e8042d8 | |||
| 2a5249d93c | |||
| 0e02eaee53 | |||
| e32eb8b2b1 | |||
| 0aecae0c5e | |||
| fa90e0eafd | |||
| 2a10d974b2 | |||
| 7e04896394 |
@@ -1,4 +1,29 @@
|
|||||||
|
|
||||||
When building, use build.sh, not make.
|
When building, use build.sh, not make.
|
||||||
|
|
||||||
Use it as follows: build.sh -m "useful comment on changes being made"
|
Use it as follows: build.sh -m "useful comment on changes being made"
|
||||||
|
|
||||||
|
When making TUI menus, try to use the first leter of the command and the key to press to execute that command. For example, if the command is "Open file" try to use a keypress of "o" upper or lower case to signal to open the file. Use this instead of number keyed menus when possible. In the command, the letter should be underlined that signifies the command.
|
||||||
|
|
||||||
|
## Buffer Size Guidelines
|
||||||
|
|
||||||
|
### Path Handling
|
||||||
|
- Always use buffers of size 1024 or PATH_MAX (4096) for file paths
|
||||||
|
- When concatenating paths with snprintf, ensure buffer is at least 2x the expected maximum input
|
||||||
|
- Use safer path construction patterns that check lengths before concatenation
|
||||||
|
|
||||||
|
### String Formatting Safety
|
||||||
|
- Before using snprintf with dynamic strings, validate that buffer size >= sum of all input string lengths + format characters + 1
|
||||||
|
- Use strnlen() to check actual string lengths before formatting
|
||||||
|
- Consider using asprintf() for dynamic allocation when exact size is unknown
|
||||||
|
- Add length validation before snprintf calls
|
||||||
|
|
||||||
|
### Compiler Warning Prevention
|
||||||
|
- Always size string buffers generously (minimum 1024 for paths, 512 for general strings)
|
||||||
|
- Use buffer size calculations: `size >= strlen(str1) + strlen(str2) + format_overhead + 1`
|
||||||
|
- Add runtime length checks before snprintf operations
|
||||||
|
- Consider using safer alternatives like strlcpy/strlcat if available
|
||||||
|
|
||||||
|
### Code Patterns to Avoid
|
||||||
|
- Fixed-size buffers (512 bytes) for path operations where inputs could be 255+ bytes each
|
||||||
|
- Concatenating unchecked strings with snprintf
|
||||||
|
- Assuming maximum path component sizes without validation
|
||||||
|
|||||||
10
README.md
10
README.md
@@ -164,11 +164,9 @@ Offset | Size | Field | Description
|
|||||||
4 | 2 | Version | Format version (currently 1)
|
4 | 2 | Version | Format version (currently 1)
|
||||||
6 | 32 | Pad Checksum | Binary pad checksum (32 bytes)
|
6 | 32 | Pad Checksum | Binary pad checksum (32 bytes)
|
||||||
38 | 8 | Pad Offset | Offset in pad file (uint64_t)
|
38 | 8 | Pad Offset | Offset in pad file (uint64_t)
|
||||||
46 | 2 | Filename Length | Original filename length (uint16_t)
|
46 | 4 | File Mode | Original file permissions (uint32_t)
|
||||||
48 | var | Original Filename | Original filename string
|
50 | 8 | File Size | Original file size (uint64_t)
|
||||||
var | 4 | File Mode | Original file permissions (uint32_t)
|
58 | var | Encrypted Data | XOR-encrypted file contents
|
||||||
var | 8 | File Size | Original file size (uint64_t)
|
|
||||||
var | var | Encrypted Data | XOR-encrypted file contents
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### .otp.asc File Format (ASCII Armored)
|
### .otp.asc File Format (ASCII Armored)
|
||||||
@@ -185,7 +183,7 @@ Pad-Offset: <decimal-offset-value>
|
|||||||
-----END OTP MESSAGE-----
|
-----END OTP MESSAGE-----
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** ASCII armored files lose original filename and permission metadata.
|
**Note:** ASCII armored files do not preserve original file permissions metadata.
|
||||||
|
|
||||||
## Usage Examples
|
## Usage Examples
|
||||||
|
|
||||||
|
|||||||
1
files/o2.txt
Normal file
1
files/o2.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Hello, this is a test file for encryption!
|
||||||
BIN
files/out2.otp
Normal file
BIN
files/out2.otp
Normal file
Binary file not shown.
BIN
files/output.otp
Normal file
BIN
files/output.otp
Normal file
Binary file not shown.
1
files/test_decrypt.txt
Normal file
1
files/test_decrypt.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Test file content for decryption
|
||||||
BIN
files/test_decrypt.txt.otp
Normal file
BIN
files/test_decrypt.txt.otp
Normal file
Binary file not shown.
1
files/test_file.txt
Normal file
1
files/test_file.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Hello, this is a test file for encryption!
|
||||||
7
files/test_file.txt.otp.asc
Normal file
7
files/test_file.txt.otp.asc
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN OTP MESSAGE-----
|
||||||
|
Version: v0.2.29
|
||||||
|
Pad-ChkSum: d0d4a489354348b08d8c7b324814d8c50010042e9da47f2c973f32a16a09101b
|
||||||
|
Pad-Offset: 57
|
||||||
|
|
||||||
|
05S8GfS0tFfczNMUz0xrieFGoPSREM4uo5QhFGoBCcOzjfTXTDMt3hRtAQ==
|
||||||
|
-----END OTP MESSAGE-----
|
||||||
BIN
files/test_files_dir.txt.otp
Normal file
BIN
files/test_files_dir.txt.otp
Normal file
Binary file not shown.
1
files/test_input.txt
Normal file
1
files/test_input.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
This is a test file for encryption.
|
||||||
8898
files/toc.txt
Executable file
8898
files/toc.txt
Executable file
File diff suppressed because it is too large
Load Diff
BIN
files/toc.txt.otp
Normal file
BIN
files/toc.txt.otp
Normal file
Binary file not shown.
8
otp.code-workspace
Normal file
8
otp.code-workspace
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"settings": {}
|
||||||
|
}
|
||||||
BIN
test.txt.otp
BIN
test.txt.otp
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
This is a test file for OTP encryption.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
-----BEGIN OTP MESSAGE-----
|
|
||||||
Version: v0.2.15
|
|
||||||
Pad-ChkSum: 0c8e19fde996e683fdbd348d1052eec168ffe6f67a88bb1278d0d02e9341b87b
|
|
||||||
Pad-Offset: 210
|
|
||||||
|
|
||||||
mMIm7iVtUO6NbXbskMxtydI/A16UXEQUGTcIya/8Dja6PB3EC0MLdw==
|
|
||||||
-----END OTP MESSAGE-----
|
|
||||||
Reference in New Issue
Block a user