<?php
// client.php

$serverCertificateFile 'file://ca/certs/server.crt';
$clientPrivateKeyFile 'file://ca/private/client.key';

$context = new ZMQContext();
$socket $context->getSocket(ZMQ::SOCKET_REQ);
$socket->connect('ipc://magic.ipc');

$clientPrivateKey openssl_pkey_get_private($clientPrivateKeyFile);
$serverPublicKey openssl_pkey_get_public($serverCertificateFile);

$data 'rolf';

openssl_public_encrypt($data$crypted$serverPublicKey);
openssl_sign($crypted$signature$clientPrivateKey);

while (
$msg openssl_error_string())
    echo 
$msg "\n";

$msg = array(
    
'data' => $crypted,
    
'signature' => $signature,
);

$socket->send(serialize($msg));