Генерация адреса Ethereum из личного ключа

Я пытаюсь сгенерировать адрес Ethereum на основе заданного личного ключа после этого «Как генерируются адреса эфириума?и используя это Реализация Keccak-256 Ethereum.
Но это показывает эту ошибку:

Warning: openssl_pkey_get_details() expects parameter 1 to be resource, boolean given in /localweb/getethaddress.php on line 15

Моя реализация:

    // Format the private key as PEM
$header_private_key = "-----BEGIN EC PRIVATE KEY-----\n";
$footer_private_key = "\n-----END EC PRIVATE KEY-----";

$eth_private_key = $header_private_key . "1a63b5c735d66d827f40f7d3a257da777cd7997d48bd5d319c36683c0ad3b1de" . $footer_private_key;

// Load private key from a string
$private_key = openssl_pkey_get_private($eth_private_key);
var_dump($private_key);
while ($msg = openssl_error_string())
echo "openssl_pkey_get_private " . $msg . "<br />\n";

// Get the Public key
$_public_key = openssl_pkey_get_details($private_key)['key'];
$eth_public_key = openssl_pkey_get_public($_public_key);

// hash the public key
$hash_public_key = Keccak256\Keccak256::hash($eth_public_key, 256);;
$eth_address = '0x' . substr($hash_public_key, -40);

// compare the output
echo 'Your generated address: ' . $eth_address . '<br>';
echo 'Myetherwallet address: 0x47180b59dd8c81f46186900bbd29cbf675b3fbd9';/*
ad 40: 47180b59dd8c81f46186900bbd29cbf675b3fbd9
pk 64: 1a63b5c735d66d827f40f7d3a257da777cd7997d48bd5d319c36683c0ad3b1de
*/
?>

ОБНОВИТЬ:

Я получаю эти ошибки:

openssl_pkey_get_private error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long
openssl_pkey_get_private error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header
openssl_pkey_get_private error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
openssl_pkey_get_private error:10092010:elliptic curve routines:d2i_ECPrivateKey:EC lib
openssl_pkey_get_private error:100DE08E:elliptic curve routines:OLD_EC_PRIV_DECODE:decode error
openssl_pkey_get_private error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long
openssl_pkey_get_private error:0D068066:asn1 encoding routines:ASN1_CHECK_TLEN:bad object header
openssl_pkey_get_private error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
openssl_pkey_get_private error:0907B00D:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector