Changeset 6844 for TI12-security/trunk/MyProxyClient
- Timestamp:
- 26/04/10 13:50:57 (11 years ago)
- Location:
- TI12-security/trunk/MyProxyClient
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TI12-security/trunk/MyProxyClient/myproxy/client.py
r6840 r6844 764 764 """Store a proxy credential on the server 765 765 766 @raise MyProxyClientError: no client certificate and private key set 766 Unfortunately this method is not implemented as it requires the creation 767 of a proxy certificate by the client but PyOpenSSL doesn't currently 768 support the required proxyCertInfo X.509 certificate extension 769 770 @raise NotImplementedError: see above 767 771 768 772 @type username: string … … 770 774 @type passphrase: string 771 775 @param passphrase: pass-phrase for new credential. This will be used 772 by the server to authenticate later requests. 776 by the server to authenticate later requests. IT must be at least 777 6 characters. The server may impose other restrictions too depending 778 on its configuration. 773 779 @type certFile: string 774 780 @param certFile: user's X.509 proxy certificate in PEM format … … 777 783 @type sslCertFile: string 778 784 @param sslCertFile: certificate used for client authentication with 779 the MyProxy server SSL connection. This ID will be set as the owner 780 of the stored credentials. Only the owner can later remove 781 credentials with myproxy-destroy or the destroy method. If not set, 782 this argument defaults to $GLOBUS_LOCATION/etc/hostcert.pem or if this 783 is not set, certFile 785 the MyProxy server SSL connection. If not set, 786 this argument defaults to $GLOBUS_LOCATION/etc/hostcert.pem 784 787 @type sslKeyFile: string 785 788 @param sslKeyFile: corresponding private key file. See explanation … … 792 795 credentials in seconds. defaults to proxyCertMaxLifetime attribute value 793 796 """ 794 795 lifetime = lifetime or self.proxyCertMaxLifetime 796 797 # Inputs must be string type otherwise server will reject the request 798 if isinstance(username, unicode): 799 username = str(username) 800 801 if isinstance(passphrase, unicode): 802 passphrase = str(passphrase) 803 804 globusLoc = os.environ.get('GLOBUS_LOCATION') 805 if not sslCertFile or not sslKeyFile: 806 if globusLoc: 807 sslCertFile = os.path.join(globusLoc, 808 *MyProxyClient._hostCertSubDirPath) 809 sslKeyFile = os.path.join(globusLoc, 810 *MyProxyClient._hostKeySubDirPath) 811 else: 812 raise MyProxyClientError('No client certificate and private ' 813 'key set and no $GLOBUS_LOCATION set ' 814 'in order to retrieve and use a host ' 815 'certificate and private key') 816 817 # Set up SSL connection 818 conn = self._initConnection(certFile=sslCertFile, 819 keyFile=sslKeyFile, 820 keyFilePassphrase=sslKeyFilePassphrase) 821 822 conn.connect((self.hostname, self.port)) 823 824 # send globus compatibility stuff 825 conn.write('0') 826 827 # send store command - ensure conversion from unicode before writing 828 cmd = MyProxyClient.PUT_CMD % (username, lifetime) 829 conn.write(str(cmd)) 830 831 # process server response 832 dat = conn.recv(MyProxyClient.SERVER_RESP_BLK_SIZE) 833 834 respCode, errorTxt = self._deserializeResponse(dat) 835 if respCode: 836 raise MyProxyClientGetError(errorTxt) 837 838 # Get the certificate request generated by the server 839 certReqDat = conn.recv(MyProxyClient.SERVER_RESP_BLK_SIZE) 840 certReq = crypto.load_certificate_request(crypto.FILETYPE_ASN1, 841 certReqDat) 842 pubKey = certReq.get_pubkey() 843 userKey = crypto.load_privatekey(crypto.FILETYPE_PEM, 844 open(userKeyFile).read(), 845 'testpassword') 846 847 userCert = crypto.load_certificate(crypto.FILETYPE_PEM, 848 open(userCertFile).read()) 849 850 # Create the proxy certificate 851 proxyCert = crypto.X509() 852 userCertSubject = userCert.get_subject() 853 proxyCert.set_issuer(userCertSubject) 854 proxyCert.set_pubkey(pubKey) 855 proxyCert.set_notBefore('20100421130000Z') 856 proxyCert.set_notAfter('20100421170000Z') 857 proxyCert.set_serial_number(12345) 858 proxyCertSubject = crypto.X509Name(userCertSubject) 859 proxyCertSubject.CN = userCertSubject.CN+'/CN=1234567' 860 861 proxyCert.set_subject(proxyCertSubject) 862 proxyCert.set_version(3) 863 864 # Oops not currently supported! 865 # extension = crypto.X509Extension('proxyCertInfo', 866 # 1, 867 # 'Path Length Constraint: infinite') 868 # proxyCert.add_extensions([extension]) 869 proxyCert.sign(userKey, 'md5') 870 wantRead = conn.want_read() 871 wantWrite = conn.want_write() 872 873 nCerts = '\002' 874 conn.send(nCerts) 875 conn.send(crypto.dump_certificate(crypto.FILETYPE_ASN1, proxyCert)) 876 conn.send(crypto.dump_certificate(crypto.FILETYPE_ASN1, userCert)) 877 878 resp = conn.recv(MyProxyClient.SERVER_RESP_BLK_SIZE) 879 respCode, errorTxt = self._deserializeResponse(resp) 880 if respCode: 881 raise MyProxyClientRetrieveError(errorTxt) 797 raise NotImplementedError('put method is not currently implemented. ' 798 'It requires the creation of a proxy ' 799 'certificate by the client but PyOpenSSL ' 800 'doesn\'t currently support the required ' 801 'proxyCertInfo X.509 certificate extension.') 882 802 883 803 def info(self, -
TI12-security/trunk/MyProxyClient/myproxy/test/myProxyClientTest.cfg
r6840 r6844 18 18 username: testuser 19 19 passphrase: testpassword 20 ownerCertFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.crt 21 ownerKeyFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.key 20 22 sslCertFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.crt 21 23 sslKeyFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.key … … 49 51 sslKeyFilePassphrase: testpassword 50 52 51 [test07Put]52 username: proxytestuser53 passphrase: proxypassword54 userCertFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.crt55 userKeyFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.key56 sslCertFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.crt57 sslKeyFile: $MYPROXYCLIENT_UNITTEST_DIR/testuser.key58 sslKeyFilePassphrase: testpassword -
TI12-security/trunk/MyProxyClient/myproxy/test/proxy.crt
r6840 r6844 1 1 -----BEGIN CERTIFICATE----- 2 MIIDfTCCAuagAwIBAgIE Vu1r4TANBgkqhkiG9w0BAQUFADAlMRAwDgYDVQQKEwdH3 YWJyaWVsMREwDwYDVQQDEwh0ZXN0dXNlcjAeFw0xMDA0Mj IxMTI3MjNaFw0xMDA04 Mj MwNTMyMjNaMDoxEDAOBgNVBAoTB0dhYnJpZWwxETAPBgNVBAMTCHRlc3R1c2Vy5 MRMwEQYDVQQDEwox NDU4NDAwMjI1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC6 CgKCAgEA ocqzpomfIySbinA99pxwS5xcGAIbh9OUoZsxk3BNm4ECImacUdfV3xLF7 g10hjOUVzA7TQJ4avOHhf8xmmGBczQw92u/eMzrHJq398MqHjjCyqhXW9A9aINeR 8 8gdPRV8ccCLoLJMI8fGdCjr+rWhC8MK6XJa0VtTzy56Yk3tXt1imXyFGJAbkZMz4 9 nofmUOVfBv6MVqSB+IL1kVJu3K19DOGMXBEFiJZdSHGER8MOuZeQxfibGAWdLMV9 10 i13sz3tAIpjh4ztGFeMjX0s9bvLeAPRMsIM84PdxzUTRNGvZGOuTTn+cA0ZCespY 11 FKOewP5mnkCjUM9MOeuQMv6M9wloGoVIGPUvx38Xt0pL4Ku+TD4fVyWLfkN+XnfL 12 CXpWl9+SIjEiA3VN/MTgDsLCM4lfoHZohVJEE9K61FKxNP2lLTlh+t6FEzLxcCPD 13 b6RMFaGb0pHxWDwp9NXYJuHMzUH21OmckMTzXgGU/tgtm/Q+ssIdGr/h0YpzzWK0 14 LMg2oM8Z2YGpHryN7xYXWdxqkI6fv7a7tyW1Dh2460OyyoPY7fB5lDkskAm9eiEw15 raqbN7iGC57gUVaZbsp9Y3xqZThJBDlrwN/KRa0VmHWuxpseeaGm2sE85UNMwYnS 16 smnbUbw3SMz8rETgMqHqrtwHkdc3+YJV86xVRGZWDItEclBO8TkCAwEAAaMhMB8w2 MIIDfTCCAuagAwIBAgIEUW9MMjANBgkqhkiG9w0BAQUFADAlMRAwDgYDVQQKEwdH 3 YWJyaWVsMREwDwYDVQQDEwh0ZXN0dXNlcjAeFw0xMDA0MjYxMjMxMDhaFw0xMDA0 4 MjcwNjM2MDhaMDoxEDAOBgNVBAoTB0dhYnJpZWwxETAPBgNVBAMTCHRlc3R1c2Vy 5 MRMwEQYDVQQDEwoxMzY2MjQ4NDk4MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC 6 CgKCAgEA1dMvYhA9zOrl5vpvokPrxaga38DGSnQ2ceYa22AAwN4nM+Q79DGGr86S 7 wR5mCeLzGqz8pkxgdEOzp6Hehy5AJbGT25Ik5mXa6zVqugGkXGDMHAlX6h4Qgs4Q 8 702Y5fwhCBp9LJGbCcu6MN/CFEkt+ZhBcZWa5L1hSodxGZeEMkj03dDwLmWuL6PG 9 kAkvXFct9dKD2mOav1tjO2NqrA4/I9fwoDhjiJhcdSX6Y5nL6fODAh58APVB7Jwb 10 qMWA46ArkMaPloeNqy1AjoXsWAEbf++YME0ThJwp/uTYjfp4RBNmzaN6b6aUtMC0 11 BV8R12OsR7srOPHdMOChV27J6wbUxukuZj+cUvkdMcqjFOBzeojps6P9e2SYanyl 12 ijDi7pt9pdvxLK7NDv86ckzZITzhCUUleaL+sxglAFcBbB3AaeFfKTIDIfBr9nsL 13 Ugrhs3ukhznitzNUMU48NCcs4+GiEclE5lVwX8EYdu/Z+yKbgAqee6qMvlpdeCRg 14 pBU7763a/7dIU5vXBtaIJBC/p6VILp9XOQLP0vzb3SMiYgBsQtt8tUs4c+45Cspw 15 unh2QIK0YhkOf8QqJRNas5sA82ELDe0eA1koYlK9e8tRn2fcOLmHVlfECgSVTp2t 16 8z2Rpwv/oPuwLFKvZd6OOv6I6+3ppLez8Q5jBHuJkHSZj9Aiw68CAwEAAaMhMB8w 17 17 HQYIKwYBBQUHAQ4BAf8EDjAMMAoGCCsGAQUFBxUBMA0GCSqGSIb3DQEBBQUAA4GB 18 A Ml7p7tyPuzYHtwRI86UrpuBZydPhaPFH2LFWHWW3mmBLnoWH2dhTLdPpsfn6W4G19 /iCZZGf09zR/VgVZvqAuLZagMTY4hn2GGjbOgfF/+pt+4GUGBoJMyX0tG/ksh3T5 20 +009F3GkkP/9WwGjM7QCIoaaJbCsT41iw8h+dPwHHNdi 18 ADUTL0uU5RUZnmRE8SXpKgHt4TOEEYWH7mHfRG4ptlEjEinioW1p4ihdZKgdSXOC 19 vexE2Wp6KLqKg/jMxjj4HhjqLU2COUq0z+8FUF13RHESMUDxZbHnftmjBN7Gzz4d 20 JmxM31IAlNUbwK/nZ/9GkhrGnVZMIepZ7YIf5b5zcoUs 21 21 -----END CERTIFICATE----- 22 22 -----BEGIN CERTIFICATE----- -
TI12-security/trunk/MyProxyClient/myproxy/test/proxy.key
r6840 r6844 1 1 -----BEGIN RSA PRIVATE KEY----- 2 MIIJ JwIBAAKCAgEAocqzpomfIySbinA99pxwS5xcGAIbh9OUoZsxk3BNm4ECImac3 UdfV3xLFg10hjOUVzA7TQJ4avOHhf8xmmGBczQw92u/eMzrHJq398MqHjjCyqhXW 4 9A9aINeR8gdPRV8ccCLoLJMI8fGdCjr+rWhC8MK6XJa0VtTzy56Yk3tXt1imXyFG 5 JAbkZMz4nofmUOVfBv6MVqSB+IL1kVJu3K19DOGMXBEFiJZdSHGER8MOuZeQxfib 6 GAWdLMV9i13sz3tAIpjh4ztGFeMjX0s9bvLeAPRMsIM84PdxzUTRNGvZGOuTTn+c 7 A0ZCespYFKOewP5mnkCjUM9MOeuQMv6M9wloGoVIGPUvx38Xt0pL4Ku+TD4fVyWL 8 fkN+XnfLCXpWl9+SIjEiA3VN/MTgDsLCM4lfoHZohVJEE9K61FKxNP2lLTlh+t6F 9 EzLxcCPDb6RMFaGb0pHxWDwp9NXYJuHMzUH21OmckMTzXgGU/tgtm/Q+ssIdGr/h 10 0YpzzWK0LMg2oM8Z2YGpHryN7xYXWdxqkI6fv7a7tyW1Dh2460OyyoPY7fB5lDks 11 kAm9eiEwraqbN7iGC57gUVaZbsp9Y3xqZThJBDlrwN/KRa0VmHWuxpseeaGm2sE8 12 5UNMwYnSsmnbUbw3SMz8rETgMqHqrtwHkdc3+YJV86xVRGZWDItEclBO8TkCAwEA13 AQKCAgB 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 51 51 -----END RSA PRIVATE KEY----- -
TI12-security/trunk/MyProxyClient/myproxy/test/test_myproxyclient.py
r6840 r6844 69 69 sslKeyFilePassphrase = thisSection.get('sslKeyFilePassphrase') 70 70 if sslKeyFilePassphrase is None: 71 sslKeyFilePassphrase = getpass.getpass( prompt="\ntest1Store credential "72 "owner pass-phrase: ")73 74 certFile = path.expandvars(thisSection[' signingCertFilePath'])75 keyFile = path.expandvars(thisSection[' signingPriKeyFilePath'])71 sslKeyFilePassphrase = getpass.getpass( 72 prompt="\ntest1Store credential owner pass-phrase: ") 73 74 certFile = path.expandvars(thisSection['ownerCertFile']) 75 keyFile = path.expandvars(thisSection['ownerKeyFile']) 76 76 sslCertFile = path.expandvars(thisSection['sslCertFile']) 77 77 sslKeyFile = path.expandvars(thisSection['sslKeyFile']) … … 189 189 self.assert_(subj) 190 190 print("Trust root certificate retrieved with DN=%s" % subj) 191 192 def test07Put(self):193 # Make a new credential on the server and a proxy certificate to it194 thisSection = self.cfg['test07Put']195 196 response = self.clnt.put(197 thisSection['username'],198 thisSection['passphrase'],199 path.expandvars(thisSection['userCertFile']),200 path.expandvars(thisSection['userKeyFile']),201 sslCertFile=path.expandvars(thisSection['sslCertFile']),202 sslKeyFile=path.expandvars(thisSection['sslKeyFile']),203 sslKeyFilePassphrase=thisSection['sslKeyFilePassphrase'])204 191 205 192 -
TI12-security/trunk/MyProxyClient/setup.py
r6837 r6844 28 28 setup( 29 29 name = 'MyProxyClient', 30 version = ' 0.9.1',30 version = '1.0.0', 31 31 description = 'MyProxy Client', 32 long_description = 'Pure Python implementation of MyProxy client interface', 32 long_description = '''Pure Python implementation of MyProxy client ''' 33 '''interface. 34 35 This version replaces M2Crypto with PyOpenSSL as the OpenSSL wrapper. 36 Get trust roots is now added. A stub for Put has been added but not 37 implemented as unfortunately the PyOpenSSL X.%09 extensions interface does 38 not support the required proxyCertInfo extension required for proxy 39 certificates. 40 ''', 33 41 author = 'Philip Kershaw', 34 42 author_email = 'Philip.Kershaw@stfc.ac.uk', … … 45 53 }, 46 54 classifiers = [ 47 'Development Status :: 4 - Beta',55 'Development Status :: 5 - Production/Stable', 48 56 'Environment :: Console', 49 57 'Environment :: Web Environment',
Note: See TracChangeset
for help on using the changeset viewer.