iOS, Andorid のアプリを配布するCGI
iOSのほうはiDEP取って inhouseってことで。
#!/usr/bin/python import hmac import hashlib from base64 import b64encode, urlsafe_b64encode from urllib import quote_plus, urlopen sigbin = hmac.new(vkey, user, hashlib.sha256).digest() signature = urlsafe_b64encode(sigbin) s = urlsafe_b64encode(sigbin) import cgi import cgitb cgitb.enable(display=0, logdir="/tmp") #cgitb.enable() import sys form = cgi.FieldStorage() fn, isig, ukey, usig = '', '', '', '' if 'idle' in form.keys(): ukey = form['idle'].value mac = hmac.new(vkey, ukey, hashlib.sha256) sig = mac.digest() isig = urlsafe_b64encode(sig) if 'busy' in form.keys(): usig = form['busy'].value if 'fn' in form.keys(): fn = form['fn'].value f = urlsafe_b64decode(fn)[::-1] if f == '' or isig == '' or ukey == '' or usig == '' or usig != isig: print """Content-type: text/html Error """ else: fx = open("/var/uso/jordan/%s"%f, 'rb') fx.seek(0, 2) bytes = fx.tell() fx.seek(0, 0) ctype = "text/plain; charset=UTF-8" if '.apk' in f: ctype = "application/vnd.android.package-archive" elif '.ipa' in f: ctype = "application/octet-stream" print """Content-Type: %s Content-Disposition: attachment; filename="%s" Content-Length: %s """%(ctype, f, bytes) while True: data = fx.read(4096) sys.stdout.write(data) if not data: break fx.close()
みたいな?
あいかわらず雑ですが。