fix #1062: use correct length for base32 keys
authorDominik Csapak <d.csapak@proxmox.com>
Wed, 20 Jul 2016 11:31:33 +0000 (13:31 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Wed, 20 Jul 2016 13:21:48 +0000 (15:21 +0200)
we wrongly assumed the keys to be 32 chars long,
instead of 16

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
PVE/AccessControl.pm

index 0af92d7..0b64374 100644 (file)
@@ -1299,7 +1299,7 @@ sub oath_verify_otp {
     foreach my $k (PVE::Tools::split_list($keys)) {
        # Note: we generate 3 values to allow small time drift
        my $binkey;
-       if ($k =~ /^[A-Z2-7=]{32}$/) {
+       if ($k =~ /^[A-Z2-7=]{16}$/) {
            $binkey = MIME::Base32::decode_rfc3548($k);
        } elsif ($k =~ /^[A-Fa-f0-9]{40}$/) {
            $binkey = pack('H*', $k);