Subversion Repositories Applications.papyrus

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1698 → Rev 1699

/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hascash/wp-hashcash-fr_FR.po
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hascash/wp-hashcash-getkey.php
File deleted
\ No newline at end of file
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hascash/secret/.htaccess
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hascash/secret/wp-hashcash.lib
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hascash/secret/wp-hashcash.key
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hascash/wp-hashcash-js.php
File deleted
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/wp-hashcash-fr_FR.po
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/wp-hashcash-fr_FR.po
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/wp-hashcash-getkey.php
New file
0,0 → 1,149
<?php
 
require_once(realpath(dirname(__FILE__) . '/') . '/secret/wp-hashcash.lib');
 
header("Pragma: no-cache");
header("Expires: 0");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
$expired = array();
 
$function_name = hashcash_random_string(rand(6,18));
$expired [] = $function_name;
 
$js = "function $function_name (){";
 
$type = rand(0, 3) * 0;
switch($type){
/* Addition of n times of field value / n, + modulus:
Time guarantee: 100 iterations or less */
case 0:
$eax = hashcash_random_string(rand(8,10), $expired);
$expired [] = $eax;
$val = hashcash_field_value();
$inc = rand($val / 100, $val - 1);
$n = floor($val / $inc);
$r = $val % $inc;
$js .= "var $eax = $inc; ";
for($i = 0; $i < $n - 1; $i++){
$js .= "$eax += $inc; ";
}
$js .= "$eax += $r; ";
$js .= "return $eax; ";
break;
/* Conversion from binary:
Time guarantee: log(n) iterations or less */
case 1:
$eax = hashcash_random_string(rand(8,10), $expired);
$expired [] = $eax;
$ebx = hashcash_random_string(rand(8,10), $expired);
$expired [] = $ebx;
$ecx = hashcash_random_string(rand(8,10), $expired);
$expired [] = $ecx;
$val = hashcash_field_value();
$binval = strrev(base_convert($val, 10, 2));
$js .= "var $eax = \"$binval\"; ";
$js .= "var $ebx = 0; ";
$js .= "var $ecx = 0; ";
$js .= "while($ecx < $eax.length){ ";
$js .= "if($eax.charAt($ecx) == \"1\") { ";
$js .= "$ebx += Math.pow(2, $ecx); ";
$js .= "} ";
$js .= "$ecx++; ";
$js .= "} ";
$js .= "return $ebx; ";
break;
/* Multiplication of square roots:
Time guarantee: constant time */
case 2:
$val = hashcash_field_value();
$sqrt = floor(sqrt($val));
$r = $val - ($sqrt * $sqrt);
$js .= "return $sqrt * $sqrt + $r; ";
break;
/* Sum of random numbers to the final value:
Time guarantee: log(n) expected value */
case 3:
$val = hashcash_field_value();
$js .= "return ";
 
$i = 0;
while($val > 0){
if($i++ > 0)
$js .= "+";
$temp = rand(1, $val);
$val -= $temp;
$js .= $temp;
}
 
$js .= ";";
break;
}
$js .= "} $function_name ();";
 
// pack bytes
function strToLongs($s) {
$l = array();
// pad $s to some multiple of 4
$s = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
while(count($s) % 4 != 0){
$s [] = ' ';
}
 
for ($i = 0; $i < ceil(count($s)/4); $i++) {
$l[$i] = ord($s[$i*4]) + (ord($s[$i*4+1]) << 8) + (ord($s[$i*4+2]) << 16) + (ord($s[$i*4+3]) << 24);
}
 
return $l;
}
 
// xor all the bytes with a random key
$key = rand(21474836, 2126008810);
$js = strToLongs($js);
 
for($i = 0; $i < count($js); $i++){
$js[$i] = $js[$i] ^ $key;
}
 
// libs function encapsulation
$libs_name = hashcash_random_string(rand(6,18), $expired);
$expired [] = $libs_name;
 
$libs = "function $libs_name(){";
 
// write bytes to javascript, xor with key
$data_name = hashcash_random_string(rand(6,18), $expired);
$expired [] = $data_name;
 
$libs .= "var $data_name = new Array(" . count($js) . "); ";
for($i = 0; $i < count($js); $i++){
$libs .= $data_name . '[' . $i . '] = ' . $js[$i] . ' ^ ' . $key .'; ';
}
 
// convert bytes back to string
$libs .= " var a = new Array($data_name.length); ";
$libs .= "for (var i=0; i<" . $data_name . ".length; i++) { ";
$libs .= 'a[i] = String.fromCharCode(' . $data_name .'[i] & 0xFF, ' . $data_name . '[i]>>>8 & 0xFF, ';
$libs .= $data_name . '[i]>>>16 & 0xFF, ' . $data_name . '[i]>>>24 & 0xFF); } ';
$libs .= "return eval(a.join('')); ";
 
// call libs function
$libs .= "} $libs_name();";
 
// return code
echo $libs;
?>
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/secret/.htaccess
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/secret/.htaccess
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/secret/wp-hashcash.lib
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/secret/wp-hashcash.lib
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/secret/wp-hashcash.key
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/secret/wp-hashcash.key
New file
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/livraison_aha/client/integrateur_wikini/bibliotheque/hashcash/wp-hashcash-js.php
New file
0,0 → 1,94
<?php
ob_start("ob_gzhandler");
require_once(realpath(dirname(__FILE__) . '/') . '/secret/wp-hashcash.lib');
$field_id = hashcash_random_string(rand(6,18));
$fn_enable_name = hashcash_random_string(rand(6,18));
?>
 
addLoadEvent(<?php echo $fn_enable_name; ?>);
 
function createHiddenField(){
var inp = document.createElement('input');
inp.setAttribute('type', 'hidden');
inp.setAttribute('id', '<?php echo $field_id; ?>');
inp.setAttribute('name', 'hashcash_value');
inp.setAttribute('value', '-1');
var e = document.getElementsByName('<?php echo HASHCASH_FORM_NAME; ?>');
e[0].appendChild(inp);
}
 
function addVerbage(){
var e = document.getElementById('<?php echo HASHCASH_FORM_ID; ?>');
var p = document.createElement('p');
p.innerHTML = '<?php echo str_replace("'", "\'", hashcash_verbage()); ?>';
e.appendChild(p);
}
 
function <?php echo $fn_enable_name;?>(){
createHiddenField();
addVerbage();
loadHashCashKey('<?php
echo $_GET['siteurl']; ?>/client/integrateur_wikini/bibliotheque/hashcash/wp-hashcash-getkey.php', '<?php echo $field_id; ?>');
}
 
function loadHashCashKey(fragment_url, e_id) {
var xmlhttp=createXMLHttp();
var element = document.getElementById(e_id);
 
xmlhttp.open("GET", fragment_url, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
element.value = eval(xmlhttp.responseText);
}
}
 
xmlhttp.send(null);
}
 
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
 
function createXMLHttp() {
if (typeof XMLHttpRequest != "undefined")
return new XMLHttpRequest();
var xhrVersion = [ "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp","Microsoft.XMLHttp" ];
for (var i = 0; i < xhrVersion.length; i++) {
try {
var xhrObj = new ActiveXObject(xhrVersion[i]);
return xhrObj;
} catch (e) { }
}
return null;
}
 
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
func();
oldonload();
}
}
}