o
    &zhZ                     @   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!   R/var/www/html/kangema/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      @         iiiiiiiiiiiiiiiiiiii $i
!i!i!i*!i!s	   *Hcds	   *Hcdi iQi,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"   

$