<?php

	//*****************************************************************************************
	// Sendet ein Array mit Befehlen und Daten zum Signatur Server
	function sende_zu_signatur_server($arr)
	{
		$client = stream_socket_client("tcp://127.0.0.1:4711", $errno, $errorMessage);
		if ($client === false) {
			throw new UnexpectedValueException("Failed to connect: $errorMessage");
		}
		//Codiere das array im json format
		$string=json_encode($arr);
		$sent=stream_socket_sendto($client, $string);
		if ($sent > 0) {
			$server_response = fread($client, 4096);
			$response_array=json_decode($server_response, true);
			return ($response_array);
		}
		//$return_array=stream_get_contents($client);
		//echo $return_array;
		//echo stream_get_contents($client);
		fclose($client);
		return(false);
	}
	
	//*****************************************************************************************
	// Funktion fragt die Sereinnummer der Signaturkarte ab
	function seriennummer_abfragen()
	{
		$arr=array(
			"funktion" => "seriennummer_abfragen"
		);
		$ret_array=sende_zu_signatur_server($arr);
		print_r($ret_array);
	}
	
	//*****************************************************************************************
	// Funktion signiert einen String
	function signieren()
	{
		$arr=array(
			"funktion" 		=> "signieren",
			"zu_signieren" 	=> "Dieser String soll signiert werden"
		);
		$ret_array=sende_zu_signatur_server($arr);
		print_r($ret_array);
	}
	
	function sig_test()
	{
		$karte = new COM('ATrustRegistrierkasseCom.Registrierkasse');
                               
                               //$ret=$karte->CheckSoftware;
                               //echo $ret;
                               echo "Initialize : \n";
                               $ret=$karte->Initialize;
			//echo "Signiere String :".$arr['zu_signieren']." ...\n";

	    echo "Signiere : \n";
                               
		$signature="";
		$ret=$karte->SignJWS('zu_signieren', $signature);
		echo $signature;
	}
	//*****************************************************************************************
	//seriennummer_abfragen();
	//signieren();
	sig_test();

?>