parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

пожалуйста

agat 28.12.2006 16:44 / 28.12.2006 16:46

@main[]
^if(def $form:check){
	^if(^dataSigned[$.data[$form:data]$.signature[$form:signature]]){
		Signed
	}{
		Not signed
	}
}
$sData[^math:uuid[]]
<form method="post">
<input type="hidden" name="data" value="$sData">
<input type="hidden" name="signature" value="^signData[$sData]">
<input type="submit" name="check" value="Check">
</form>
$form:data
<pre>
	$form:signature
</pre>

################################################
@signData[sData][sDataName;hResult]
$sDataName[^math:uuid[]-qhadata-$global.user.id]
^sData.save[/data/temp/$sDataName]
$hResult[^file::exec[/cgi-bin/openssl/openssl.exe dgst -binary -sha1 -sign ${env:DOCUMENT_ROOT}/data/openssl/6911226.pem ${env:DOCUMENT_ROOT}/data/temp/$sDataName]]
$result[^hResult.text.base64[]]
^if(-f "/data/temp/$sDataName"){
	^file:delete[/data/temp/$sDataName]
}
# end of @signData[]

################################################
@dataSigned[hData][sDataName;sSignName;hResult;fSignature]
$result(0)
$sDataName[^math:uuid[]-upcdata-$global.user.id]
$sSignName[^math:uuid[]-upcsign-$global.user.id]
$fSignature[^file::base64[$hData.signature]]
^hData.data.save[/data/temp/$sDataName]
^fSignature.save[binary;/data/temp/$sSignName]
$hResult[^file::exec[/cgi-bin/openssl/openssl.exe dgst -sha1 -prverify ${env:DOCUMENT_ROOT}/data/openssl/6911226.pem -signature ${env:DOCUMENT_ROOT}/data/temp/$sSignName ${env:DOCUMENT_ROOT}/data/temp/$sDataName]]
^if(^hResult.text.match[Verified OK]){
	$result(1)
}
^if(-f "/data/temp/$sDataName"){
	^file:delete[/data/temp/$sDataName]
}
^if(-f "/data/temp/$sSignName"){
	^file:delete[/data/temp/$sSignName]
}
# end of @dataSigned[]