strukt/key

v1.1.0-alpha 2024-03-24 23:50 UTC

This package is auto-updated.

Last update: 2024-04-25 00:05:58 UTC


README

Installation

Composer

Create composer.json script with contents below then run composer update

{
    "require":{

        "strukt/key":"v1.1.0-alpha"
    },
    "minimum-stability":"dev"
}

Hashing

Bcrypt

$hash = bcry("p@55w0rd")->encode()
$success = bcry("p@55w0rd")->verify($hash);

Sha256 (Doubled)

$hash = sha256dbl('p@55w0rd');

Public & Private Keys

Auto generate keys

$k = Strukt\Ssl\All::makeKeys()
$k->getKeys()->getPrivateKey()->getPem()//get private key
$k->getKeys()->getPublicKey()->getPem()//get public key
$c = $k->useCipher()
$enc = $c->encrypt("p@55w0rd")
$dec = $c->decrypt($enc)

Use existing key

You can generate your key via ssh-keygen if you wantta.

$file = "file:///home/churchill/.ssh/id_rsa"
$k = Strukt\Ssl\All::keyPath($file)

Encrypt message with public key

$message = "Hi! My name is (what?)
My name is (who?)
My name is
Slim Shady
Hi! My name is (huh?)
My name is (what?)
My name is
Slim Shady";

$file = "file:///home/churchill/.ssh/id_rsa.pub"

$p = new Strukt\Ssl\KeyPair();//No private key
$p->setPublicKey($file);

$enc = Strukt\Ssl\All::useKeys($p)->toSend($message);

Encrypt with password

$p = new Strukt\Ssl\KeyPair($path, "p@55w0rd");
$p->getPublicKey()//trigger public key extraction from private key

$k = Strukt\Ssl\All::useKeys($p)

Certificate Signing Request (CSR)

Sign & verify certificate

$kpath = "file:///home/churchill/.ssh/id_rsa"
$cpath = "file:///home/churchill/.ssh/cacert.pem"

$oCsr = Strukt\Ssl\All::keyPath($kpath)->withCert($cpath);

$cert = $oCsr->sign();

$success = $oCsr->verify($cert);