* sipb-xen-vnc-server -> invirt-vnc-server
* Generate the VNC token key at install-time instead of hard-coding
+ * Add a script for generating VNC auth tokens, to be exposed over remctl
- -- Evan Broder <broder@mit.edu> Tue, 28 Oct 2008 19:44:04 -0400
+ -- Evan Broder <broder@mit.edu> Tue, 28 Oct 2008 19:45:35 -0400
sipb-xen-vnc-server (1.2) unstable; urgency=low
--- /dev/null
+#!/usr/bin/python
+
+import os
+import sys
+import hmac
+import cPickle
+import sha
+import time
+import base64
+from invirt.vnc import getTokenKey
+
+def getAuthToken(username, machine, lifetime=5*60):
+ data = {}
+ data['user'] = username
+ data['machine'] = machine
+ data['expires'] = time.time() + lifetime
+ pickled_data = cPickle.dumps(data)
+ m = hmac.new(getTokenKey(), digestmod=sha)
+ m.update(pickled_data)
+ token = {'data': pickled_data, 'digest': m.digest()}
+ token = cPickle.dumps(token)
+ token = base64.urlsafe_b64encode(token)
+ return token
+
+def main():
+ try:
+ username = os.environ['REMOTE_USER']
+ except KeyError:
+ username = None
+ machine = sys.argv[1]
+ print getAuthToken(username, machine)
+
+if __name__ == '__main__':
+ main()
packages = ['invirt.vnc'],
package_dir = {'invirt': 'python'},
- scripts=['invirt-vnc-server']
+ scripts=['invirt-vnc-server', 'invirt-vnc-authtoken']
)