Skip to content

gmajor-encrypt/sr25519-bindings

Repository files navigation

sr25519-bindings

PHP bindings for the GOLANG implementation of the sr25519 cryptography library

Reference to https://github.com/ChainSafe/go-schnorrkel

Installation

composer require gmajor/sr25519-bindings

Building

Requirement

  1. PHP 7 >= 7.4.0, PHP 8 FFI support
  2. GOLANG (>1.15)

Build

cd go && go build -buildmode=c-shared -o sr25519.so . && mv sr25519.so ../src/Crypto/sr25519.so

Basic Usage

Autoloading

Codec supports PSR-4 autoloaders.

<?php
# When installed via composer
require_once 'vendor/autoload.php';

KeyPair

Init a sr25519 KeyPair

<?php
use Crypto\sr25519;
$sr = new sr25519();
$secretSeed = "...";
$pair = $sr->InitKeyPair("{$secretSeed}");

sign message

You can sign a message by passing the message

<?php
use Crypto\sr25519;
$sr = new sr25519();
$sr->Sign($sr->InitKeyPair("secretSeed"), "msg");

verify signature

Verify a signature proof

<?php
use Crypto\sr25519;
$sr = new sr25519();
$sr->VerifySign($sr->InitKeyPair("secretSeed"), "helloworld", "signature");

XXHash 64 support

implementation of https://github.com/pierrec/xxHash/xxHash64

<?php
use Crypto\sr25519;
$sr = new sr25519();
$sr->XXHash64CheckSum(0, "helloworld");

Test

make test

Resources

License

The package is available as open source under the terms of the MIT License

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published