OLD | NEW |
1 # coding: utf-8 | 1 # coding: utf-8 |
2 | 2 |
3 # This file is part of the Adblock Plus web scripts, | 3 # This file is part of the Adblock Plus web scripts, |
4 # Copyright (C) 2006-2014 Eyeo GmbH | 4 # Copyright (C) 2006-2014 Eyeo GmbH |
5 # | 5 # |
6 # Adblock Plus is free software: you can redistribute it and/or modify | 6 # Adblock Plus is free software: you can redistribute it and/or modify |
7 # it under the terms of the GNU General Public License version 3 as | 7 # it under the terms of the GNU General Public License version 3 as |
8 # published by the Free Software Foundation. | 8 # published by the Free Software Foundation. |
9 # | 9 # |
10 # Adblock Plus is distributed in the hope that it will be useful, | 10 # Adblock Plus is distributed in the hope that it will be useful, |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 in the configuration file. | 189 in the configuration file. |
190 This static method will enumerate Configuration | 190 This static method will enumerate Configuration |
191 objects representing the settings for each repository. | 191 objects representing the settings for each repository. |
192 """ | 192 """ |
193 config = get_config() | 193 config = get_config() |
194 for key, value in config.items("extensions"): | 194 for key, value in config.items("extensions"): |
195 if key.endswith("_repository"): | 195 if key.endswith("_repository"): |
196 repositoryName = re.sub(r'_repository$', '', key) | 196 repositoryName = re.sub(r'_repository$', '', key) |
197 if repositoryName: | 197 if repositoryName: |
198 yield Configuration(config, nightlyConfig, repositoryName, value) | 198 yield Configuration(config, nightlyConfig, repositoryName, value) |
| 199 |
| 200 def getSafariCertificateID(keyFile): |
| 201 import M2Crypto |
| 202 |
| 203 bio = M2Crypto.BIO.openfile(keyFile) |
| 204 try: |
| 205 while True: |
| 206 try: |
| 207 cert = M2Crypto.X509.load_cert_bio(bio) |
| 208 except M2Crypto.X509.X509Error: |
| 209 raise Exception('No safari developer certificate found in chain') |
| 210 |
| 211 subject = cert.get_subject() |
| 212 for entry in subject.get_entries_by_nid(subject.nid['CN']): |
| 213 m = re.match(r'Safari Developer: \((.*?)\)', entry.get_data().as_text()) |
| 214 if m: |
| 215 return m.group(1) |
| 216 finally: |
| 217 bio.close() |
OLD | NEW |