<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=zyWmajdSBA39yr8ux5Mst45JimAU">OTPjunkie</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=zyWmajdSBA39yr8ux5Mst45JimAU">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zyWmajdSBA39yr8ux5Mst45JimAU&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zyWmajdSBA39yr8ux5Mst45JimAU&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zyWmajdSBA39yr8ux5Mst45JimAU&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=zyWmajdSBA39yr8ux5Mst45JimAU&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        

    <div class="list-group">
    <div class="list-group-item">
    <div style="font-size:1.3rem;">OTPjunkie</div>
    <div class="repo-item">OTP encryption software written in RUST</div>
    <div>rad:zyWmajdSBA39yr8ux5Mst45JimAU</div>
    </div>
    <div class="list-group-item">
    <div>Visibility</div>
    <div class="repo-item">public</div>
    </div>
    <div class="list-group-item">
    <div>Delegates</div><div class="repo-item">did:key:z6MkkzoSd5p9d5ZKFf3BRrG247towTjepZtER71QFFkMvgs6</div>
    </div>
    <div class="list-group-item">
    <div>Default branch</div>
    <div><span class="repo-item">master &#8594 34df9df1b797a960262ab079e704b811396b2ee0</span> (Sun Feb  9 06:03:09 2025)</div>
    </div>
    <div class="list-group-item">
    <div>Threshold</div>
    <div class="repo-item">1</div>
    </div>
    </div>
    
        <div class="list-group mt-3">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-book"></i> README.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"># OTPjunkie
OTPjunkie is a robust and secure command-line encryption tool written in Rust that implements the One-Time Pad (OTP) approach to achieve unbreakable confidentiality. Designed for efficiency, OTPjunkie enables users to encrypt and decrypt data with complete privacy and security, without relying on external dependencies. Inspired by the need for a more performant and modern implementation, this project builds on the foundation of Diplomatrix, a Python-based OTP tool, and delivers enhanced speed, memory safety, and reliability while retaining the simplicity of the original concept. OTPjunkie supports multilingual text processing in English, Spanish, and French, accommodating accented characters, special symbols, and alphanumeric text, ensuring secure and accurate encryption and decryption across languages.

![GUI and QR code Image](images/free3.jpg)

## Features

- **Secure OTP Generation**: Uses the operating system&#x27;s cryptographic random number generator (`OsRng`) to generate secure one-time pads.
- **Encryption and Decryption**: Supports encryption and decryption of messages using a one-time pad.
- **File I/O**: Save and load OTPs, encrypted messages, and decrypted messages to/from files.
- **Interactive Mode**: User-friendly menu-driven interface for easy operation.
- **Memory Safety**: Sensitive data (e.g., OTPs) is securely wiped from memory after use using the `Zeroizing` crate.
- **Progress Feedback**: Visual progress bar for OTP generation.

---
## Installation

### Prerequisites
- Rust programming language (version 1.60 or higher). Install Rust from [rustup.rs](https://rustup.rs/).

### Steps
1. Clone the repository:
   ```bash
   rad clone rad:zyWmajdSBA39yr8ux5Mst45JimAU
   cd diplomatrix_rust_cli
   ```
2. Build the project:
   ```bash
   cargo build --release
   ```
3. Run the executable:
   ```bash
   ./target/release/otpjunkie
   ```
Alternatively, you can install the tool globally using Cargo:

```bash
   cargo install --path .
   ```

## Usage
### Command-Line Interface
OTPjunkie supports the following commands:

| Command         | Description                                      | Example                                      |
|------------------|--------------------------------------------------|----------------------------------------------|
| `--generate`     | Generate an OTP of specified length.            | `otpjunkie --generate 100`                |
| `--encrypt`      | Encrypt a message using an OTP.                 | `otpjunkie --encrypt &quot;Hello&quot; --otp &quot;abxyz&quot;`|
| `--decrypt`      | Decrypt a message using an OTP.                 | `otpjunkie --decrypt &quot;Khoor&quot; --otp &quot;abxyz&quot;`|
| `--help`         | Display the help message.                        | `otpjunkie --help`                        |
| `--version`      | Display the version information.                 | `otpjunkie --version`                     |

## Interactive Mode

If no command-line arguments are provided, OTPjunkie enters interactive mode, which provides a menu-driven interface:

   1. Generate OTP: Generate a one-time pad of a specified length.

   2. Encrypt a Message: Encrypt a plaintext message using an OTP.

   3. Decrypt a Message: Decrypt a ciphertext message using an OTP.

   4. Exit: Exit the program.

## Security Best Practices

Never Reuse OTPs: One-time pads must be used only once. Reusing an OTP compromises the security of the encryption.

Secure Storage: Store OTPs and encrypted messages in secure locations with restricted file permissions.

Input Validation: Ensure that all inputs (e.g., plaintext, ciphertext, OTP) are validated before processing.

Memory Safety: Sensitive data is securely wiped from memory after use using the Zeroizing crate.


## Additional Information

- **Character Set**:
  The tool supports a comprehensive character set, including:
  ```
  &quot;üÜÁÍÓÚáíóúéèêëâàçîôûùïœÉÈÊËÂÀÇÎÔÛÙÏŒabcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789!@#$%^&amp;*()_+-=[]{}|;:&#x27;,.&lt;&gt;? &quot;
  ```

- **Security Note**:
  Each OTP sheet is designed for single use only. 

## Screenshots 

![GUI and QR code Image](images/otpjunkie4.png)
![GUI and QR code Image](images/otpjunkie.png)
![GUI and QR code Image](images/otpjunkie2.png)
![GUI and QR code Image](images/otpjunkie3.png)

## Phone Screenshots 

![GUI and QR code Image](images/otpphone2.jpeg)


## No Licensing Restrictions

This tool is provided without any licensing restrictions. You are free to use, modify, and distribute it as you see fit.

---


## Contact

For encrypted email correspondence, please refer to the file public-key.asc.

## Official Website

https://enkryp.duckdns.org

## e-mail

battosai@dnmx.su

## LXMF Address 

1b634f9ac2aee34bec3276ad17f52d11

An LXMF address is a unique identifier used for secure communication over the LXMF protocol, enabling users to send and receive encrypted messages. I suggest using the Sideband app or Nomad Network for this purpose.

## Briar

To connect via Briar, please first add me using the link provided, and then send your Briar link to my email. I will promptly add you to my trusted contacts.

briar://ac4jkk7rqcb7vbvjudzvoav64lcypoo3qaj3b5wnndcvvsdpz3fvs



</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

