public function testId() { #$id = (string)Uuid::uuid4(); #$id = (string)Uuid::uuid5(Uuid::NAMESPACE_DNS, 'php.net'); $key = sslKeyPubClean(static::SSL_KEY_PUB1); $keyBin = base64_decode($key); $id = (string) Uuid::uuid5(Uuid::NAMESPACE_X500, $keyBin); $this->assertEquals('d4773c00-6a11-540a-b72c-ed106ef8309b', $id); $id = (string) Uuid::uuid5(Uuid::NAMESPACE_X500, static::SSL_KEY_PUB1); $this->assertEquals('91a3d7b5-28fe-52d1-a56d-b09093c63c84', $id); $id = (string) Uuid::uuid5(Uuid::NAMESPACE_X500, 'hello world'); $this->assertEquals('dbd9b896-6d7c-5852-895c-ecc5735cf874', $id); $id = (string) Uuid::uuid5(Uuid::NAMESPACE_DNS, 'hello world'); $this->assertEquals('823a2f73-a936-56c3-b8b4-03641bd74f35', $id); $id = (string) Uuid::uuid5(Uuid::NAMESPACE_X500, 'my_name'); $this->assertEquals('045fe53e-72be-5a76-8f58-783aed5c99d5', $id); $this->assertTrue(Uuid::isValid('91a3d7b5-28fe-52d1-a56d-b09093c63c84')); $this->assertFalse(Uuid::isValid('x1a3d7b5-28fe-52d1-a56d-b09093c63c84')); $id = '00000000-0000-4000-8000-000000000000'; $this->assertTrue(Uuid::isValid($id)); $id = '00000000-0000-4000-8000-00000000000x'; $this->assertFalse(Uuid::isValid($id)); $id = '00000000-0000-4000-8000-0000000000'; $this->assertFalse(Uuid::isValid($id)); $id = '00000000-0000-0000-0000-000000000000'; $this->assertTrue(Uuid::isValid($id)); $id = 'badfood0-0000-4000-a000-000000000000'; $this->assertFalse(Uuid::isValid($id)); $id = 'cafed00d-2131-4159-8e11-0b4dbadb1738'; $this->assertTrue(Uuid::isValid($id)); }
public function testSslKeyPubClean() { $expect = ''; $expect .= 'MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2+wZQQSxQXaxUmL/bg7O'; $expect .= 'gA7fOuw4Kk6/UtEntvM4O1Ll75l0ptgalwkO8DFhwRmWxDd0BYd/RxsbWrii3/1R'; $expect .= '6+HSQdjyeeY3gQFdL7r65RRvXkYTtNSsFDeqcVQC+c6lFqRozQDNnAtxmy1Fhc0z'; $expect .= 'IUeC0iWNXIJciDYLTJV6VB0WNNl+5mCV2KaH2H3opw2A0c/+FTPWbvgf28WAd4FQ'; $expect .= 'koWiNjnDEDl5Ti39HeJN7q9LjpiafRTSrwE/kNcFNEtcdcxArxITuR92H+VjgXqs'; $expect .= 'dre0pqN7q1cJCZ/XP8Z0ZWA8rpLym+3S+FJaTJXhHBAv05hOu2zfzKUqaxmatAWz'; $expect .= 'NgxY7wvarGol/kqBYqyfVO/c1AOdr2Uw9rO0vJ9nPADih+OMYltaX521i6gvngdc'; $expect .= 'P7JJIZyNcZgN1l6HbO0KxugD2nJfkgGmU/ihIEpHjmrMXYMSzJy1KVOmLFpd8tiu'; $expect .= 'WXQCmarTOlzkcH7jmVqDRAjMUvDoAve4LYl0jua1W2wtCm1DisgIK6MCt38W8Zn3'; $expect .= 'o1pxgj1LiQmhAx4D9nL4MH14Zi++mK0iu8tJeXJdcql1l+bOJfkRjkNh3QjmLX3b'; $expect .= 'zoDXmjCC/vFQgspeMCSnIeml5Ymlk1tgxgiRNAPRpttbyr0jzlnUGEYZ/fGzNsY7'; $expect .= 'O5mYMzSLyuOXR5xhBhG7fjsCAwEAAQ=='; $this->assertEquals($expect, sslKeyPubClean(static::SSL_KEY_PUB1)); }
public static function genSslKeyFingerprint($key) { $key = sslKeyPubClean($key); $keyBin = base64_decode($key); $keyBinSha512Bin = hash('sha512', $keyBin, true); $fingerprintHex = hash('ripemd160', $keyBinSha512Bin, false); $fingerprintBin = hash('ripemd160', $keyBinSha512Bin, true); $checksumHex = hash('sha512', hash('sha512', $fingerprintBin, true)); $checksumHex = substr($checksumHex, 0, 8); // 4 Bytes $num = Hex::decode($fingerprintHex . $checksumHex); #$numBase58 = Base58::encode($num); $base58 = new Base58(); $numBase58 = $base58->encode((string) $num); #$numBase58 = $base58->encode($num); $rv = 'FC_' . $numBase58; return $rv; }