NIP-44
Rust
use nostr::prelude::*;
pub fn run() -> Result<()> {
let keys = Keys::generate();
let pk =
PublicKey::from_hex("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798")?;
let ciphertext = nip44::encrypt(keys.secret_key(), &pk, "my message", nip44::Version::V2)?;
println!("Encrypted: {ciphertext}");
let plaintext = nip44::decrypt(keys.secret_key(), &pk, ciphertext)?;
println!("Decrypted: {plaintext}");
Ok(())
}
Python
from nostr_protocol import Keys, PublicKey, nip44_encrypt, nip44_decrypt, Nip44Version
def nip44():
print("\nEncrypting and Decrypting Messages (NIP-44):")
keys = Keys.generate()
pk = PublicKey.from_hex("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798")
ciphertext = nip44_encrypt(keys.secret_key(), pk, "my message", Nip44Version.V2)
print(f" Encrypted: {ciphertext}")
plaintext = nip44_decrypt(keys.secret_key(), pk, ciphertext)
print(f" Decrypted: {plaintext}")
JavaScript
const { Keys, PublicKey, nip44Encrypt, nip44Decrypt, NIP44Version, loadWasmSync } = require("@rust-nostr/nostr");
function run() {
loadWasmSync();
let keys = Keys.generate();
let public_key = PublicKey.fromHex("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798");
let ciphertext = nip44Encrypt(keys.secretKey, public_key, "my message", NIP44Version.V2)
console.log("Encrypted: " + ciphertext)
let plaintext = nip44Decrypt(keys.secretKey, public_key, ciphertext)
console.log("Decrypted: " + plaintext)
}
module.exports.run = run;
Kotlin
TODO
Swift
import Nostr
import Foundation
func nip44() {
// TODO
}