aboutsummaryrefslogtreecommitdiff
path: root/boca-1.5.0/src/hex.php
diff options
context:
space:
mode:
authorcassio <cassiopc@gmail.com>2013-07-02 05:44:46 +0000
committercassio <cassiopc@gmail.com>2013-07-02 05:44:46 +0000
commita9aa438ea0558eb0044cf1e54a9190ddb41b65e5 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /boca-1.5.0/src/hex.php
parent94caebadeb66ad7b453d4258a796979cafb758b0 (diff)
downloadboca-a9aa438ea0558eb0044cf1e54a9190ddb41b65e5.tar.gz
boca-a9aa438ea0558eb0044cf1e54a9190ddb41b65e5.zip
restructuring of boca's git
Diffstat (limited to 'boca-1.5.0/src/hex.php')
-rw-r--r--boca-1.5.0/src/hex.php150
1 files changed, 0 insertions, 150 deletions
diff --git a/boca-1.5.0/src/hex.php b/boca-1.5.0/src/hex.php
deleted file mode 100644
index 0d80b1d..0000000
--- a/boca-1.5.0/src/hex.php
+++ /dev/null
@@ -1,150 +0,0 @@
-<?php
-////////////////////////////////////////////////////////////////////////////////
-//BOCA Online Contest Administrator
-// Copyright (C) 2003-2012 by BOCA Development Team (bocasystem@gmail.com)
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-////////////////////////////////////////////////////////////////////////////////
-// Last modified: 21/july/2012 by cassio@ime.usp.br
-function myshorthash($k) {
- return hash('sha1',$k);
-}
-function myhash($k) {
- return hash('sha256',$k);
-}
-function myhmac($k,$d) {
- return hash_hmac('sha256',$k,$d);
-}
-
-function encryptData($text,$key,$compress=true) {
- if(!function_exists('mcrypt_get_iv_size')) {
- MSGError("Encryption error -- mcrypt not installed -- contact an admin (" . getFunctionName() .")");
- LogError("Encryption error -- mcrypt not installed -- contact an admin (" . getFunctionName() .")");
- return "";
- }
- $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
- $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
- $key = myhash($key . "123456789012345678901234567890"); // . myhash($key);
- $grade='##';
- if($compress) {
- $text = zipstr($text);
- $grade = '@#';
- }
- $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, substr(pack("H*", $key),0,32), $text . myshorthash($text) . $grade, MCRYPT_MODE_CBC, $iv);
- return base64_encode($crypttext . $iv);
-}
-
-function decryptData($crypttext,$key,$txt='') {
- $crypttext = base64_decode($crypttext);
- $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
- $test1='';
- $test2='x';
- $clen = strlen($crypttext);
- if($clen > $iv_size) {
- $iv = substr($crypttext, $clen-$iv_size, $iv_size);
- $crypttext = substr($crypttext, 0, $clen-$iv_size);
- $key = myhash($key . "123456789012345678901234567890"); // . myhash($key);
- $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, substr(pack("H*", $key),0,32), $crypttext, MCRYPT_MODE_CBC, $iv);
- $pos = strrpos($decrypttext,"#");
- $iscompressed=false;
- if(substr($decrypttext,$pos-1,1)=='@') $iscompressed=true;
- $ll=strlen(myshorthash("x"));
- $test2 = substr($decrypttext,$pos-1-$ll, $ll);
- $decrypttext = substr($decrypttext,0,$pos-1-$ll);
- $test1 = myshorthash($decrypttext);
- }
- if($test1 != $test2) {
- if($txt=='')
- MSGError("Decryption error -- contact an admin now (" . getFunctionName() .")");
- LogError("Decryption error -- contact an admin, possibly password wrong (" . getFunctionName() .",$txt)");
- return "";
- }
- if($iscompressed) return unzipstr($decrypttext);
- return $decrypttext;
-}
-
-//hex1 e hex2 sao strings hexa
-//devolve a soma das duas
-function bighexsoma ($hex1, $hex2){
- if (strlen($hex1) > strlen($hex2)) {
- $a = $hex2;
- $hex2 = $hex1;
- $hex1 = $a;
- }
- while (strlen($hex1) < strlen($hex2))
- $hex1 = '0' . $hex1;
-
- $sobra = 0;
- $resultado = '';
- for($x = strlen($hex1)-1; $x>=0; $x--){
-
- $op1 = (int) hexdec(substr($hex1,$x,1));
- $op2 = (int) hexdec(substr($hex2,$x,1));
-
- $r = $op1 + $op2 + $sobra;
- if ($r > 15) {
- $r -= 16;
- $sobra = 1;
- } else $sobra = 0;
-
- $resultado = dechex($r) . $resultado;
- }
- if ($sobra == 1)
- $resultado = '1' . $resultado;
- return $resultado;
-}
-//hex1 e hex2 sao strings hexa
-//devolve a string que representa hex1 - hex2
-function bighexsub ($hex1, $hex2) {
- $h1 = strlen($hex1);
- $h2 = strlen($hex2);
- while ($h1 < $h2) {
- $hex1 = '0' . $hex1;
- $h1++;
- }
- while ($h2 < $h1) {
- $hex2 = '0' . $hex2;
- $h2++;
- }
-
- $i=0;
- while ($hex1[$i] == $hex2[$i] && $i<$h1) $i++;
- if ($i>=$h1) return '0';
-
- if ($hex1[$i] > $hex2[$i]) {
- $sinal='';
- } else {
- $sinal = '-';
- $a = $hex2;
- $hex2 = $hex1;
- $hex1 = $a;
- }
-
- $sobra = 0;
- $resultado = '';
- for($x = $h1-1; $x>=0; $x--) {
- $op1 = (int) hexdec(substr($hex1,$x,1));
- $op2 = (int) hexdec(substr($hex2,$x,1));
-
- $r = $op1 - $op2 - $sobra;
- if ($r < 0) {
- $r += 16;
- $sobra = 1;
- } else $sobra = 0;
-
- $resultado = dechex($r) . $resultado;
- }
- return $sinal . $resultado;
-}
-// eof
-?>