2017-03-10 1 views
0

Je suis en train d'implémenter une carte aadhar api et je suis coincé dans la génération PID et sKey xml bloc pour les données xml d'entrée, suivant est l'exigence pour les deux éléments clés.Comment puis-je générer des données d'entrée pour carte Aadhar (utilisé par les citoyens indiens comme leur identifiant unique) Intégration API

Les données de bloc PID doivent être cryptées avec une clé de session dynamique en utilisant l'algorithme symétrique AES-256 (AES/ECB/PKCS7Padding). La clé de session, à son tour, est cryptée avec une clé publique UIDAI de 2048 bits en utilisant un algorithme asymétrique (RSA/ECB/PKCS1Padding).

Skey La valeur de cet élément est la valeur codée en base 64 de la clé de session AES chiffrée à 256 bits.

Voici le code que j'ai créé:

///////////////////// 

$ci = '20170922';  

$method = 'AES-256-ECB'; 
$skey = openssl_encrypt (session_id(), $method ,$ci, true); 

$pid_block = '<Pid ts="2016061512000000" ver="1.0"><Demo lang=""><Pi ms="E" mv="" name="Shivshankar Choudhury" lname="" lmv="" gender="" dob="" dobt="" age="" phone="" email="" /></Demo></Pid>'; 
$pid_encoded = base64_encode($pid_block); 
$hash_256_pid = hash ( 'sha256' , $pid_block); 
$hmac_pid_block = openssl_encrypt($hash_256_pid , $method , session_id()); 
$encoded_hmac_pid_block = base64_encode($hmac_pid_block); 


$xml_data = '<Auth ac="public" sa="public" ver="1.6" txn="706bf70d" tid="public" uid="999999990019"><Uses pi="y" pa="n" pfa="n" bio="y" bt="FMR" otp="n" pin="n"/><Meta udc="UIDAI:SampleClient" fdc="NC" idc="NA" pip="127.0.0.1" lot="P" lov="560103"/><Skey ci="20131003" >'.$skey.'</Skey><Data type="X">'.$pid_encoded.'</Data><Hmac>'.$encoded_hmac_pid_block.'</Hmac></Auth>'; 
echo $xml_data; 
$url = "http://auth.uidai.gov.in/1.6/public/9/9/"; 

     //setting the curl parameters. 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
// Following line is compulsary to add as it is: 
     curl_setopt($ch, CURLOPT_POSTFIELDS, 
        "xmlRequest=" . $xml_data); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300); 
     $data = curl_exec($ch); 
     curl_close($ch); 

     //convert the XML result into array 
     $array_data = json_decode(json_encode(simplexml_load_string($data)), true); 
+0

double possible de [Comment intégrer l'authentification par carte Aadhaar pour Api Numéro Aadhaar vérification en PHP?] (Https://stackoverflow.com/questions/31377015/how -to-integration-aadhaar-card-authentification-api-pour-aadhaar-nombre-vérification) –

Répondre