Ok Kay.
<?php
function geraString(){
$lut = array(0 => "A", 1 => "B",
2 => "C", 3 => "D",
4 => "E", 5 => "F",
6 => "G", 7 => "H",
8 => "I", 9 => "J",
10 => "K", 11 => "L",
12 => "M", 13 => "N",
14 => "O", 15 => "P",
16 => "Q", 17 => "R",
18 => "S", 19 => "T",
20 => "U", 21 => "V",
22 => "W", 23 => "X",
24 => "Y", 25 => "Z",
26 => "2", 27 => "3",
28 => "4", 29 => "5",
30 => "6", 31 => "7"
);
for($x=0;$x<=20;$x++){
$n = rand(0,31);
$str_sentence = $str_sentence . $lut[$n];
}
return $str_sentence;
}
function linotp_init($otpkey,$serial,$user,$server){
$ret = false;
try {
if (!function_exists("curl_init"))
die("cURL extension is not installed!");
var_dump(isset($_COOKIE["admin_session"]));
$REQUEST="http://".$server."/admin/init?otpkey=".$otpkey."&genkey=1&keysize=20&description=&pin=&user=".$user."&realm=&type=OATH&tokenrealm=&otplen=&hashlib=sha1&session=cfe77e971185f42a33e2832dcfd150df23207270c54d4c58b895a281e6f5e20a";
$ch=curl_init($REQUEST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$r=curl_exec($ch);
curl_close($ch);
$Object = json_decode($r);
if (true == $Object->{'result'}->{'status'}){
if (true == $Object->{'result'}->{'value'})
$ret=true;
}else{
$ret = 'o token não foi gerado: '.$Object->{'result'}->{'error'}->{'code'}.'|'.$Object->{'result'}->{'error'}->{'message'};
}
} catch (Exception $exc) {
echo $exc->getTraceAsString();
}
return $ret;
}
$str = geraString();
$tkn_seed = hash_hmac('sha1', $str, '');
$token = linotp_init($tkn_seed,'','seskelsen','192.168.2.66:5001');
echo($token);
?>
Thanks.
Marcelo.