| 
									
										
										
										
											2008-09-18 18:38:40 -04:00
										 |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  SelfTest/st_common.py: Common functions for SelfTest modules | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2009-02-28 13:24:04 -05:00
										 |  |  | # Written in 2008 by Dwayne C. Litzenberger <dlitz@dlitz.net> | 
					
						
							| 
									
										
										
										
											2008-09-18 18:38:40 -04:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2009-02-28 13:24:04 -05:00
										 |  |  | # =================================================================== | 
					
						
							|  |  |  | # The contents of this file are dedicated to the public domain.  To | 
					
						
							|  |  |  | # the extent that dedication to the public domain is not available, | 
					
						
							|  |  |  | # everyone is granted a worldwide, perpetual, royalty-free, | 
					
						
							|  |  |  | # non-exclusive license to exercise all rights associated with the | 
					
						
							|  |  |  | # contents of this file for any purpose whatsoever. | 
					
						
							|  |  |  | # No rights are reserved. | 
					
						
							| 
									
										
										
										
											2008-09-18 18:38:40 -04:00
										 |  |  | # | 
					
						
							| 
									
										
										
										
											2009-02-28 13:24:04 -05:00
										 |  |  | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 
					
						
							|  |  |  | # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 
					
						
							|  |  |  | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | 
					
						
							|  |  |  | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | 
					
						
							|  |  |  | # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | 
					
						
							|  |  |  | # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 
					
						
							|  |  |  | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
					
						
							|  |  |  | # SOFTWARE. | 
					
						
							|  |  |  | # =================================================================== | 
					
						
							| 
									
										
										
										
											2008-09-18 18:38:40 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | """Common functions for SelfTest modules""" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __revision__ = "$Id$" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | import binascii | 
					
						
							| 
									
										
										
										
											2010-12-28 16:26:52 -05:00
										 |  |  | import sys | 
					
						
							|  |  |  | if sys.version_info[0] is 2 and sys.version_info[1] is 1: | 
					
						
							|  |  |  |     from Crypto.Util.py21compat import * | 
					
						
							|  |  |  | from Crypto.Util.py3compat import * | 
					
						
							| 
									
										
										
										
											2008-09-18 18:38:40 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | class _list_testloader(unittest.TestLoader): | 
					
						
							|  |  |  |     suiteClass = list | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def list_test_cases(class_): | 
					
						
							|  |  |  |     """Return a list of TestCase instances given a TestCase class
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     This is useful when you have defined test* methods on your TestCase class. | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     return _list_testloader().loadTestsFromTestCase(class_) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def strip_whitespace(s): | 
					
						
							| 
									
										
										
										
											2010-12-28 16:26:52 -05:00
										 |  |  |     """Remove whitespace from a text or byte string""" | 
					
						
							|  |  |  |     if isinstance(s,str): | 
					
						
							|  |  |  |         return "".join(s.split()) | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         return b("").join(s.split()) | 
					
						
							| 
									
										
										
										
											2008-09-18 18:38:40 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | def a2b_hex(s): | 
					
						
							|  |  |  |     """Convert hexadecimal to binary, ignoring whitespace""" | 
					
						
							|  |  |  |     return binascii.a2b_hex(strip_whitespace(s)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def b2a_hex(s): | 
					
						
							|  |  |  |     """Convert binary to hexadecimal""" | 
					
						
							|  |  |  |     # For completeness | 
					
						
							|  |  |  |     return binascii.b2a_hex(s) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # vim:set ts=4 sw=4 sts=4 expandtab: |