set token types
[ga4php.git] / lib / ga4php.php
index 6c4e156..125556a 100644 (file)
@@ -154,7 +154,7 @@ abstract class GoogleAuthenticator {
                                $en = $tlid+$this->hotpSkew;
                                for($i=$st; $i<$en; $i++) {
                                        $stest = $this->oath_hotp($tkey, $i);
-                                       error_log("testing code: $code, $stest, $tkey, $tid");
+                                       //error_log("testing code: $code, $stest, $tkey, $tid");
                                        if($code == $stest) {
                                                $tokendata["tokencounter"] = $i;
                                                $this->internalPutData($username, $tokendata);
@@ -199,7 +199,7 @@ abstract class GoogleAuthenticator {
                // for keys
                
                //              $this->dbConnector->query('CREATE TABLE "tokens" ("token_id" INTEGER PRIMARY KEY AUTOINCREMENT,"token_key" TEXT NOT NULL, "token_type" TEXT NOT NULL, "token_lastid" INTEGER NOT NULL)');
-               $tokendata = internalGetData($username);
+               $tokendata = $this->internalGetData($username);
                
                // TODO: check return value
                $ttype = $tokendata["tokentype"];
@@ -222,7 +222,7 @@ abstract class GoogleAuthenticator {
                                                $stest2 = $this->oath_hotp($tkey, $i+1);
                                                if($code2 == $stest2) {
                                                        $tokendata["tokencounter"] = $i+1;
-                                                       internalPutData($username, $tokendata);                                         
+                                                       $this->internalPutData($username, $tokendata);                                          
                                                        return true;
                                                }
                                        }
@@ -250,7 +250,10 @@ abstract class GoogleAuthenticator {
                $data = $this->internalGetData($user);
                $toktype = $data["tokentype"];
                $key = $this->helperhex2b32($data["tokenkey"]);
-               $counter = $data["tokencounter"];
+
+               // token counter should be one more then current token value, otherwise
+               // it gets confused
+               $counter = $data["tokencounter"]+1;
                $toktype = strtolower($toktype);
                if($toktype == "hotp") {
                        $url = "otpauth://$toktype/$user?secret=$key&counter=$counter";