Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
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[]