Ë
    (üàg‰  ã                   ó�   — d Z ddlZddlZddlmZ ddlmZ  G d„ de«      Zdd„Z	i fd„Z
ed	k(  rd
„ Z ej                  d¬«       yy)zgSelf tests

These tests should perform quickly and can ideally be used every time an
application runs.
é    N)Úimport_module)ÚStringIOc                   ó   — e Zd Zd„ Zy)ÚSelfTestErrorc                 óN   — t         j                  | ||«       || _        || _        y ©N)Ú	ExceptionÚ__init__ÚmessageÚresult)Úselfr   r   s      úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/SelfTest/__init__.pyr
   zSelfTestError.__init__&   s"   € Ü×Ñ˜4 ¨&Ô1ØˆŒØˆ�ó    N)Ú__name__Ú
__module__Ú__qualname__r
   © r   r   r   r   %   s   „ ór   r   c                 óî  — |€i }t        j                  «       }| € |€t        |¬«      }|j                  |«       n/|€"|j                  | j                  |¬«      «       nt	        d«      ‚|€t        «       |d<   n||d<   t        j                  dd|i|¤Ž}|j                  |«      }|j                  «       s>|€0t        j                  j                  |d   j                  «       «       t        d|«      ‚|S )a6  Execute self-tests.

    This raises SelfTestError if any test is unsuccessful.

    You may optionally pass in a sub-module of SelfTest if you only want to
    perform some of the tests.  For example, the following would test only the
    hash modules:

        Crypto.SelfTest.run(Crypto.SelfTest.Hash)

    ©Úconfigz5'module' and 'tests' arguments are mutually exclusiveÚstreamÚ	verbosityzSelf-test failedr   )ÚunittestÚ	TestSuiteÚ	get_testsÚaddTestsÚ
ValueErrorr   ÚTextTestRunnerÚrunÚwasSuccessfulÚsysÚstderrÚwriteÚgetvaluer   )	Úmoduler   r   Útestsr   ÚkwargsÚsuiteÚrunnerr   s	            r   r   r   ,   sì   € ð €~ØˆÜ×ÑÓ €EØ€~Øˆ=Ü VÔ,ˆEØ�‰�uÕàˆ=Ø�N‰N˜6×+Ñ+°6Ð+Ó:Õ;äÐTÓUÐUØ€~Ü#›:ˆˆxÒà!ˆˆxÑÜ×$Ñ$ÑC¨yÐC¸FÑC€FØ�Z‰Z˜Ó€FØ×ÑÔ!Øˆ>Ü�J‰J×Ñ˜V HÑ-×6Ñ6Ó8Ô9ÜÐ.°Ó7Ð7Ø€Mr   c                 óf   — g }g d¢}|D ]%  }t        d|z   «      }||j                  | ¬«      z  }Œ' |S )N)	ÚCipherÚHashÚProtocolÚ	PublicKeyÚRandomÚUtilÚ	SignatureÚIOÚMathzCrypto.SelfTest.r   )r   r   )r   r&   Úmodule_namesÚnamer%   s        r   r   r   R   sN   € Ø€Eò
€Lð
 ò 1ˆÜÐ1°DÑ8Ó9ˆØ�×!Ñ!¨Ð!Ó0Ñ0‰ð1ð €Lr   Ú__main__c                  ó<   — t        j                  t        «       «      S r   )r   r   r   r   r   r   r(   r(   b   s   € Ü×!Ñ!¤)£+Ó.Ð.r   r(   )ÚdefaultTest)Nr   NNN)Ú__doc__r!   r   Ú	importlibr   ÚCrypto.Util.py3compatr   r	   r   r   r   r   r(   Úmainr   r   r   ú<module>r=      sV   ðñ2ó Û Ý #Ý *ô�Iô ó#ðL ó ð ˆzÒò/à€H‡M�M˜gÖ&ð r   