function themis_ci_message($client_id, $server_id, $server_key) { global $key_store; $endpoint = 'https://themis.cossacklabs.com/api/' . $client_id . '/'; $key_store[$server_id]['public_key'] = base64_decode($server_key); $key_store[$client_id]['public_key'] = base64_decode('VUVDMgAAAC2IRalnA7mIDaKlK5HvBz2woET8cc2dJQ3sOQMYQ/13TtUNofnQ'); $key_store[$client_id]['private_key'] = base64_decode('UkVDMgAAAC1whm6SAJ7vIP18Kq5QXgLd413DMjnb6Z5jAeiRgUeekMqMC0+x'); $headers = array(); $headers[] = 'Content-type: application/x-www-form-urlencoded'; $message = 'The best laid plans of mice and men go oft astray'; $message = base64_encode(phpthemis_secure_message_wrap($key_store[$client_id]['private_key'], $key_store[$server_id]['public_key'], $message)); $docbody = 'message=' . urlencode($message); $curl_ctx = curl_init(); $response = do_curl($curl_ctx, $endpoint, $headers, $docbody); $message = $response['curl_content']; $message = phpthemis_secure_message_unwrap($key_store[$client_id]['private_key'], $key_store[$server_id]['public_key'], $message); echo $message . "\n"; curl_close($curl_ctx); }
/** * @dataProvider SignNoProvider */ public function testSignNoVerify($private_key, $public_key, $message, $iscorrect) { if (!$iscorrect) { $this->setExpectedException('Exception'); } $encrypted_message = phpthemis_secure_message_wrap($private_key, NULL, $message); $decrypted_message = phpthemis_secure_message_unwrap($private_key, $public_key + "a", $encrypted_message); $this->assertEquals($decrypted_message, $message); }
$client_priv = "REC2-Q��r�\tξ\t3�^��S��2�4dz�ރ�e�*m��"; $server_pub = "UEC2-uX3����H��q�\$����n֬��D\$��PL>�"; echo '<h2>encrypting message</h2>'; $encrypted_message = phpthemis_secure_message_wrap($server_priv, $client_pub, "test message"); echo '<b>encrypted message: </b>'; echo bin2hex($encrypted_message); echo '<br> <b>decrypted message: </b>'; $plain_message = phpthemis_secure_message_unwrap($client_priv, $server_pub, $encrypted_message); echo $plain_message; echo '<br>'; echo '<h2>signing message</h2>'; $signed_message = phpthemis_secure_message_wrap($server_priv, NULL, "test message"); echo '<b>signed message: </b>'; echo bin2hex($signed_message); echo '<br> <b>decrypted message: </b>'; $plain_message = phpthemis_secure_message_unwrap($client_priv, $server_pub, $signed_message); echo $plain_message; echo '<br>'; echo '<h2>key generation for EC</h2>'; $key_pair = phpthemis_gen_ec_key_pair(); echo "private_key = "; echo bin2hex($key_pair['private_key']); echo '<br>'; echo "public_key = "; echo bin2hex($key_pair['public_key']); echo '<h2>key generation for RSA</h2>'; $key_pair = phpthemis_gen_rsa_key_pair(); echo "private_key = "; echo bin2hex($key_pair['private_key']); echo '<br>'; echo "public_key = ";