assemble_spice_ticket
authorAlexandre Derumier <aderumier@odiso.com>
Tue, 25 Jun 2013 07:12:52 +0000 (09:12 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 25 Jun 2013 09:48:05 +0000 (11:48 +0200)
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
PVE/AccessControl.pm
control.in

index a9bf2dd..44299ce 100644 (file)
@@ -5,6 +5,7 @@ use Encode;
 use Crypt::OpenSSL::Random;
 use Crypt::OpenSSL::RSA;
 use MIME::Base64;
+use MIME::Base32 qw( RFC );
 use Digest::SHA;
 use PVE::Tools qw(run_command lock_file file_get_contents split_list safe_print);
 use PVE::Cluster qw(cfs_register_file cfs_read_file cfs_write_file cfs_lock_file);
@@ -213,6 +214,23 @@ sub verify_vnc_ticket {
     return undef;
 }
 
+sub assemble_spice_ticket {
+    my ($username, $path) = @_;
+
+    my $rsa_priv = get_privkey();
+
+    my $timestamp = sprintf("%08X", time());
+
+    my $plain = "PVESPICE:$timestamp";
+
+    $path = normalize_path($path);
+
+    my $full = "$plain:$path";
+
+    my $ticket = $plain . "::" . encode_base64($rsa_priv->sign($full), '');
+    return MIME::Base32::encode($ticket."::".$full);
+}
+
 sub check_user_exist {
     my ($usercfg, $username, $noerr) = @_;
 
index 8458336..1062ffa 100644 (file)
@@ -3,7 +3,7 @@ Version: @@VERSION@@-@@PKGRELEASE@@
 Section: perl
 Priority: optional
 Architecture: @@ARCH@@
-Depends: libc6 (>= 2.3), perl (>= 5.6.0-16), libcrypt-openssl-rsa-perl, libcrypt-openssl-random-perl, libjson-xs-perl, libjson-perl, libterm-readline-gnu-perl,libnet-ldap-perl, libpve-common-perl, pve-cluster, libauthen-pam-perl 
+Depends: libc6 (>= 2.3), perl (>= 5.6.0-16), libcrypt-openssl-rsa-perl, libcrypt-openssl-random-perl, libjson-xs-perl, libjson-perl, libterm-readline-gnu-perl,libnet-ldap-perl, libpve-common-perl, pve-cluster, libauthen-pam-perl , libmime-base32-perl
 Maintainer: Proxmox Support Team <support@proxmox.com>
 Description: Proxmox VE access control library
  This package contains the role based user management and access