o
    Œõ±jZ  ã                   @   sÈ   d dl mZmZmZmZ ddlmZ ddlmZ ddl	m
Z
mZ eƒ dkr6ddlmZmZ dd	lmZmZ nddlmZmZ dd	lmZmZ g d
¢Zddd„Zdd„ Ze e ¡ e¡ G dd„ dƒZdS )é    )Úunicode_literalsÚdivisionÚabsolute_importÚprint_functioné   )Úffi)Únull)ÚTLSDisconnectErrorÚTLSGracefulDisconnectErrorÚcffié   )ÚSecurityÚversion_info)ÚCoreFoundationÚ	CFHelpers)Úhandle_sec_errorÚosx_version_infor   ÚSecurityConstNc                 C   sˆ   | dkrdS | t tjtjgƒv rtdƒ‚| tjkrtdƒ‚t | t	ƒ ¡}t
 |¡}t |¡ |du s6|dkr:d|  }|du r@t}||ƒ‚)a<  
    Checks a Security OSStatus error code and throws an exception if there is an
    error to report

    :param error:
        An OSStatus

    :param exception_class:
        The exception class to use for the exception if an error occurred

    :raises:
        OSError - when the OSStatus contains an error
    r   Nz$The remote end closed the connectionÚ zOSStatus %s)Úsetr   ÚerrSSLClosedNoNotifyÚerrSSLClosedAbortr	   ÚerrSSLClosedGracefulr
   r   ÚSecCopyErrorMessageStringr   r   Úcf_string_to_unicoder   Ú	CFReleaseÚOSError)ÚerrorÚexception_classÚcf_error_stringÚoutput© r!   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/oscrypto/_mac/_security.pyr      s   


r   c                 C   s   t  | ¡}t |¡S ©N)r   ÚSecPolicyCopyPropertiesr   Úcf_dictionary_to_dict)ÚvalueÚproperties_dictr!   r!   r"   Ú_extract_policy_properties<   s   

r(   c                   @   s  e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+d Z,dZ-d!Z.d"Z/dZ0dZ1dZ2dZ3d#Z4d$Z5d%Z6d&Z7dZ8dZ9dZ:dZ;dZ<d'Z=d(Z>d)Z?dZ@d*ZAd+S ),r   r   r   r   é   é@   é   é   i¸ÙÿÿiµÙÿÿi³Ùÿÿi¨Ùÿÿi²Ùÿÿi±Ùÿÿi¯Ùÿÿi®ÙÿÿiªÙÿÿi©Ùÿÿi¬Ùÿÿi«Ùÿÿi�Ùÿÿi Ùÿÿi”Ùÿÿi‘Ùÿÿi†Ùÿÿi�Ùÿÿi‰Ùÿÿi $€i
!€i!€i!€i*!€i!€s	   *†H†÷cds	   *†H†÷cdi ÷þÿiQ�ÿÿi,�ÿÿiR�ÿÿé*   é+   éI   é    N)BÚ__name__Ú
__module__Ú__qualname__ÚkSecTrustSettingsDomainUserÚkSecTrustSettingsDomainAdminÚkSecTrustSettingsDomainSystemÚkSecTrustResultProceedÚkSecTrustResultUnspecifiedÚkSecTrustOptionImplicitAnchorsÚkSecFormatOpenSSLÚkSecItemTypePrivateKeyÚkSecItemTypePublicKeyÚ"kSSLSessionOptionBreakOnServerAuthÚkSSLProtocol2ÚkSSLProtocol3ÚkTLSProtocol1ÚkTLSProtocol11ÚkTLSProtocol12ÚkSSLClientSideÚkSSLStreamTypeÚerrSSLProtocolÚerrSSLWouldBlockr   r   r   ÚerrSSLXCertChainInvalidÚerrSSLCryptoÚerrSSLInternalÚerrSSLCertExpiredÚerrSSLCertNotYetValidÚerrSSLUnknownRootCertÚerrSSLNoRootCertÚerrSSLHostNameMismatchÚerrSSLPeerHandshakeFailÚerrSSLPeerProtocolVersionÚerrSSLPeerUserCancelledÚerrSSLWeakPeerEphemeralDHKeyÚerrSSLServerAuthCompletedÚerrSSLRecordOverflowÚ!CSSMERR_APPLETP_HOSTNAME_MISMATCHÚCSSMERR_TP_CERT_EXPIREDÚCSSMERR_TP_CERT_NOT_VALID_YETÚCSSMERR_TP_CERT_REVOKEDÚCSSMERR_TP_NOT_TRUSTEDÚCSSMERR_TP_CERT_SUSPENDEDÚCSSM_CERT_X_509v3ÚAPPLE_TP_REVOCATION_CRLÚAPPLE_TP_REVOCATION_OCSPÚCSSM_APPLE_TP_OCSP_OPTS_VERSIONÚCSSM_TP_ACTION_OCSP_DISABLE_NETÚ&CSSM_TP_ACTION_OCSP_CACHE_READ_DISABLEÚCSSM_APPLE_TP_CRL_OPTS_VERSIONÚerrSecVerifyFailedÚerrSecNoTrustSettingsÚerrSecItemNotFoundÚerrSecInvalidTrustSettingsÚkSecPaddingNoneÚkSecPaddingPKCS1ÚCSSM_KEYUSE_SIGNÚCSSM_KEYUSE_VERIFYÚCSSM_ALGID_DHÚCSSM_ALGID_RSAÚCSSM_ALGID_DSAÚCSSM_ALGID_ECDSAÚCSSM_KEYATTR_PERMANENTÚCSSM_KEYATTR_EXTRACTABLEr!   r!   r!   r"   r   G   s€    r   r#   )Ú
__future__r   r   r   r   r   r   Ú_ffir   Úerrorsr	   r
   Ú_security_cffir   r   r   Ú_core_foundation_cffir   r   Ú_security_ctypesÚ_core_foundation_ctypesÚ__all__r   r(   Úregister_native_mappingÚSecPolicyGetTypeIDr   r!   r!   r!   r"   Ú<module>   s"   

$þ