smartpasslib-go v4.0.0

Smart Passwords Library for Go

Cryptographic password generation and management without storage. Cross-platform deterministic passwords using crypto/rand and SHA-256.

Go Cryptography Zero-Storage Decentralized Cross-Platform crypto/rand

Smart Passwords Library: Cryptographic password generation and management without storage. Generate passwords from secrets, verify knowledge without exposure, manage metadata securely.

Now with Cross-Platform Determinism: Same secret + same parameters = identical password on Go, C#, Python, Kotlin, JavaScript and any language with SHA-256.

Decentralized by Design: Unlike traditional password managers that store encrypted vaults on central servers, smartpasslib stores nothing. Your secrets never leave your device. Passwords are regenerated on-demand — no cloud, no database, no trust required.

No External Dependencies — Pure Go, uses standard crypto.

⚠️ Breaking Change (v4.0.0)

This version is NOT backward compatible with v1.x.x. Passwords generated with older versions cannot be regenerated with v4.0.0.

📖 Full migration instructions → see MIGRATION.md

  • Zero-Storage Security — no passwords or secret phrases are ever stored or transmitted
  • Decentralized Architecture — no central servers, no cloud dependency
  • Cross-Platform Deterministic Generation — identical secret + parameters = identical password on any language
  • Metadata Only — store only verification metadata (public keys, descriptions, lengths)
  • On-Demand Regeneration — passwords are recalculated when needed
  • Cryptographically Secure — uses crypto/rand and SHA-256

  • Decentralized & Serverless — no central database, no cloud lock-in
  • Smart Password Generation — deterministic from secret phrase
  • Public/Private Key System — 15-30 iterations for private key, 45-60 for public key
  • Secret Verification — verify secret without exposing it
  • Random Password Generation — cryptographically secure random passwords
  • Authentication Codes — short codes for 2FA/MFA (4-100 chars)
  • No External Dependencies — pure Go, uses standard crypto

  • Proof of Knowledge — public keys verify secrets without exposing them
  • Decentralized Trust — no third party needed
  • Deterministic Security — same input = same output, always reproducible across platforms
  • Dynamic Iteration Counts — private key: 15-30, public key: 45-60
  • Zero Storage of Secrets — secret phrases exist only in your memory
  • No Recovery Backdoors — lost secret = permanently lost passwords

Validation Rules: Secret phrase: min 12 chars · Password length: 12-100 chars · Code: 4-100 chars

Key derivation (same as Python/JS/Kotlin/C# versions v4.0.0):

Key TypeIterationsPurpose
Private Key15-30 (dynamic)Password generation (never stored, never transmitted)
Public Key45-60 (dynamic)Verification (stored locally)

Character Set:

!@#$%^&*()_+-=[]{};:,.<>?/ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz

Decentralized Architecture:

  • No central authority required
  • Metadata can be synced via any channel (USB, cloud, even paper)
  • Your security depends only on your secret phrase
  • Works offline — no internet connection required

go get github.com/smartlegionlab/smartpasslib-go@v4.0.0

Generate Smart Password:

package main

import (
    "fmt"
    "github.com/smartlegionlab/smartpasslib-go"
)

func main() {
    secret := "MyStrongSecretPhrase2026!"
    length := 16

    password, _ := smartpasslib.GenerateSmartPassword(secret, length)
    fmt.Println(password)
}

Generate Public/Private Keys:

secret := "MyStrongSecretPhrase2026!"

publicKey, _ := smartpasslib.GeneratePublicKey(secret)
privateKey, _ := smartpasslib.GeneratePrivateKey(secret)

fmt.Println("Public Key (store locally):", publicKey)
fmt.Println("Private Key (never store):", privateKey)

Verify Secret Against Public Key:

secret := "MyStrongSecretPhrase2026!"
storedPublicKey := "..." // from local

isValid, _ := smartpasslib.VerifySecret(secret, storedPublicKey)
if isValid {
    password, _ := smartpasslib.GenerateSmartPassword(secret, 16)
}

Generate Random Passwords:

// Strong random (cryptographically secure)
strong, _ := smartpasslib.GenerateStrongPassword(20)

// Base random
base, _ := smartpasslib.GenerateBasePassword(16)

// Authentication code (4-100 chars)
code, _ := smartpasslib.GenerateCode(8)

Constants:

ConstantTypeDescription
VersionstringLibrary version (4.0.0)
CharsstringCharacter set used for generation

Functions:

FunctionParametersReturnsDescription
GeneratePrivateKey(secret)secret: string(string, error)Private key (15-30 iterations)
GeneratePublicKey(secret)secret: string(string, error)Public key (45-60 iterations)
VerifySecret(secret, publicKey)secret, publicKey(bool, error)Verify secret matches public key
GenerateSmartPassword(secret, length)secret, length(string, error)Deterministic password
GenerateStrongPassword(length)length(string, error)Cryptographically random
GenerateBasePassword(length)length(string, error)Simple random password
GenerateCode(length)length(string, error)Short code (4-100 chars)

Input Validation:

ParameterMinimumMaximum
Secret phrase12 charsunlimited
Password length12 chars100 chars
Code length4 chars100 chars

Secret Phrase Requirements:

  • Minimum 12 characters (enforced)
  • Case-sensitive
  • Use mix of: uppercase, lowercase, numbers, symbols
  • Never store digitally
  • NEVER use your password description as secret phrase

Strong Secret Examples:

✅ "MyStrongSecretPhrase2026!"   — mixed case + numbers + symbols
✅ "P@ssw0rd!LongSecret"         — special chars + numbers + length
✅ "GitHubPersonal2026!"         — description + extra chars

Weak Secret Examples (avoid):

❌ "short"                       — too short, returns error
❌ "GitHub Account"              — using description as secret (weak!)
❌ "password"                    — dictionary word, too short
❌ "1234567890"                  — only digits, too short

Decentralized Nature:

There is no "forgot password" button. This is by design:

  • No central server can reset your passwords
  • No support team can recover your access
  • Your secret phrase is the ONLY key

This is the price of true decentralization — you are completely in control.

  • Pointer-Based Security Paradigm10.5281/zenodo.17204738
    Architectural Shift from Data Protection to Data Non-Existence
  • Local Data Regeneration Paradigm10.5281/zenodo.17264327
    Ontological Shift from Data Transmission to Synchronous State Discovery

Same deterministic algorithm is available in multiple languages:

Install Go:

# Arch Linux
sudo pacman -S go

# Ubuntu/Debian
sudo apt install golang

Run tests:

go test -v

By using this software, you agree to the full disclaimer terms.

Software provided "AS IS" without warranty. You assume all risks.

Full legal disclaimer: See DISCLAIMER.md

License: BSD 3-Clause License