
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
xipher.org/xipher
Xipher is a curated collection of cryptographic primitives designed for secure password-based asymmetric encryption. It enables secure data sharing between parties over insecure channels using password-derived public keys, combining modern cryptography with post-quantum security.
Homebrew (macOS):
brew install shibme/tap/xipher
Install Script (Linux/macOS):
# Latest version
curl -fsSL https://xipher.org/install/install.sh | sh
# Specific version
curl -fsSL https://xipher.org/install/install.sh | sh -s v1.17.0
Install Script (Windows):
# PowerShell (latest version)
irm https://xipher.org/install/install.ps1 | iex
# PowerShell with specific version
$v="1.17.0"; irm https://xipher.org/install/install.ps1 | iex
Binary Download: Download from releases page
Docker:
docker run --rm -v $PWD:/data -it shibme/xipher help
go get -u xipher.org/xipher
package main
import (
"encoding/base32"
"fmt"
"xipher.org/xipher"
)
func main() {
// Create secret key from password
secretKey, err := xipher.NewSecretKeyForPassword([]byte("your-secure-password"))
if err != nil {
panic(err)
}
// Derive public key
publicKey, err := secretKey.PublicKey(false)
if err != nil {
panic(err)
}
// Encrypt data
plaintext := []byte("Hello, World!")
ciphertext, err := publicKey.Encrypt(plaintext, true)
if err != nil {
panic(err)
}
// Decrypt data
decrypted, err := secretKey.Decrypt(ciphertext)
if err != nil {
panic(err)
}
fmt.Printf("Original: %s\n", plaintext)
fmt.Printf("Decrypted: %s\n", decrypted)
}
Experience Xipher directly in your browser at xipher.org
Workflow:
sequenceDiagram
participant RX as Xipher<br>(Browser)
actor R as Receiver
actor S as Sender
participant SX as Xipher<br>(Browser)
R-->>+RX: Opens app
RX-->>RX: Generate keys
RX-->>-R: Public key URL
R->>+S: Share URL
S-->>+SX: Open URL & encrypt
SX-->>-S: Ciphertext
S->>-R: Send ciphertext
R-->>+RX: Decrypt
RX-->>-R: Plaintext
steps:
- name: Setup Xipher
uses: shibme/xipher@v1
with:
version: 1.17.0 # optional
name: Publish Xipher Web
on:
workflow_dispatch:
jobs:
pages:
uses: shibme/xipher/.github/workflows/pages.yaml@main
<html>
<head>
<meta charset="utf-8"/>
<script src="https://xipher.org/wasm/wasm_exec.js"></script>
<script>
const go = new Go();
WebAssembly.instantiateStreaming(
fetch("https://xipher.org/wasm/xipher.wasm"),
go.importObject
).then((result) => {
go.run(result.instance);
});
</script>
</head>
<body>
<!-- Call methods starting with 'xipher', e.g., xipherNewSecretKey() -->
</body>
</html>
We welcome contributions! Please:
For bugs and feature requests, please open an issue.
This project is experimental and should be used with caution in production environments. If you discover security vulnerabilities, please report them responsibly.
This project is licensed under the terms specified in the LICENSE file.
Special thanks to the projects and people that made Xipher possible:
Made with ❤️ for secure communication
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.