Compare commits

..

4 Commits

3 changed files with 51 additions and 10 deletions

View File

@@ -199,3 +199,5 @@ When contributing:
1. The version will automatically increment on builds
2. For major features, consider manually creating minor version tags
3. Generated version files (`src/version.*`, `VERSION`) should not be committed
# Test change
# Testing -m flag

View File

@@ -13,6 +13,23 @@ print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
print_error() { echo -e "${RED}[ERROR]${NC} $1"; }
# Global variable for commit message
COMMIT_MESSAGE=""
# Parse command line arguments for -m flag
while [[ $# -gt 0 ]]; do
case $1 in
-m|--message)
COMMIT_MESSAGE="$2"
shift 2
;;
*)
# Keep other arguments for main logic
break
;;
esac
done
# Function to automatically increment version
increment_version() {
print_status "Incrementing version..."
@@ -57,8 +74,22 @@ increment_version() {
print_warning "Failed to stage changes (maybe not a git repository)"
fi
# Commit changes with version message
if git commit -m "Version $NEW_VERSION - Automatic version increment" 2>/dev/null; then
# Handle commit message - use global variable if set, otherwise prompt
if [[ -z "$COMMIT_MESSAGE" ]]; then
echo ""
print_status "Please enter a meaningful commit message for version $NEW_VERSION:"
echo -n "> "
read -r COMMIT_MESSAGE
fi
# Check if user provided a message
if [[ -z "$COMMIT_MESSAGE" ]]; then
print_warning "No commit message provided. Using default message."
COMMIT_MESSAGE="Automatic version increment"
fi
# Commit changes with user-provided message
if git commit -m "Version $NEW_VERSION - $COMMIT_MESSAGE" 2>/dev/null; then
print_success "Committed changes for version $NEW_VERSION"
else
print_warning "Failed to commit changes (maybe no changes to commit or not a git repository)"
@@ -227,7 +258,10 @@ case "${1:-build}" in
;;
*)
echo "OTP Cipher Build Script"
echo "Usage: $0 {build|static|clean|install|uninstall|version}"
echo "Usage: $0 [-m \"commit message\"] {build|static|clean|install|uninstall|version}"
echo ""
echo "Options:"
echo " -m, --message \"text\" - Specify commit message (skips interactive prompt)"
echo ""
echo "Commands:"
echo " build - Build project with automatic version increment (default)"
@@ -236,6 +270,11 @@ case "${1:-build}" in
echo " install - Install to system (requires build first)"
echo " uninstall - Remove from system"
echo " version - Generate version files only"
echo ""
echo "Examples:"
echo " $0 build"
echo " $0 -m \"Fixed checksum parsing bug\" build"
echo " $0 --message \"Added new feature\" static"
exit 1
;;
esac

14
otp.c
View File

@@ -377,7 +377,7 @@ int list_available_pads(void) {
int count = 0;
printf("Available pads:\n");
printf("%-4s %-20s %-12s %-12s %-8s\n", "No.", "Hash (first 16 chars)", "Size", "Used", "% Used");
printf("%-4s %-20s %-12s %-12s %-8s\n", "No.", "ChkSum (first 16 chars)", "Size", "Used", "% Used");
printf("%-4s %-20s %-12s %-12s %-8s\n", "---", "-------------------", "----------", "----------", "------");
while ((entry = readdir(dir)) != NULL) {
@@ -455,7 +455,7 @@ int show_pad_info(const char* chksum) {
read_state_offset(chksum, &used_bytes);
printf("=== Pad Information ===\n");
printf("Hash: %s\n", chksum);
printf("ChkSum: %s\n", chksum);
printf("File: %s\n", pad_filename);
double size_gb = (double)st.st_size / (1024.0 * 1024.0 * 1024.0);
@@ -920,9 +920,9 @@ int encrypt_text(const char* pad_identifier) {
}
// Output in ASCII armor format
printf("\n-----BEGIN OTP MESSAGE-----\n");
printf("\n\n-----BEGIN OTP MESSAGE-----\n");
printf("Version: %s\n", get_version());
printf("Pad-Hash: %s\n", chksum_hex);
printf("Pad-ChkSum: %s\n", chksum_hex);
printf("Pad-Offset: %lu\n", current_offset);
printf("\n");
@@ -932,7 +932,7 @@ int encrypt_text(const char* pad_identifier) {
printf("%.64s\n", base64_cipher + i);
}
printf("-----END OTP MESSAGE-----\n\n");
printf("-----END OTP MESSAGE-----\n\n\n");
// Cleanup
free(pad_data);
@@ -972,8 +972,8 @@ int decrypt_text(const char* pad_identifier) {
if (!found_begin) continue;
if (strncmp(line, "Pad-Hash: ", 10) == 0) {
strncpy(stored_chksum, line + 10, 64);
if (strncmp(line, "Pad-ChkSum: ", 12) == 0) {
strncpy(stored_chksum, line + 12, 64);
stored_chksum[64] = '\0';
}
else if (strncmp(line, "Pad-Offset: ", 12) == 0) {