
    (ph5o                     
   S SK Jr  S SK Jr  S SK Jr  S SK Jr  S SK Jr  S SK Jr  S SK Jr  S SKJ	r	  S S	KJ
r
  S S
KJr  \" S5      r " S S\R                  5      r " S S\
R                   5      r " S S\5      r " S S\5      r " S S\R(                  5      r " S S\R(                  5      r " S S\R(                  5      r " S S\R0                  5      r " S S\R(                  5      r " S S\R(                  5      r " S  S!\R8                  5      r " S" S#\R(                  5      r " S$ S%\R0                  5      r " S& S'\R0                  5      r  " S( S)\R(                  5      r! " S* S+\RD                  5      r# " S, S-\R0                  5      r$ " S. S/\R(                  5      r% " S0 S1\R0                  5      r& " S2 S3\RN                  5      r( " S4 S5\RR                  5      r* " S6 S7\R0                  5      r+ " S8 S9\R0                  5      r, " S: S;\R0                  5      r- " S< S=\R(                  5      r. " S> S?\R0                  5      r/ " S@ SA\R0                  5      r0 " SB SC\R0                  5      r1 " SD SE\R0                  5      r2 " SF SG\R0                  5      r3 " SH SI\R(                  5      r4 " SJ SK\R0                  5      r5 " SL SM\R(                  5      r6 " SN SO\R0                  5      r7\Rp                  " SP5      r9 " SQ SR\R0                  5      r:\Rp                  " SS5      r; " ST SU\RR                  5      r<\6" 5       R{                  \R|                  " \R~                  \R                  SV5      SW9rA " SX SY\RD                  5      rB " SZ S[\R0                  5      rC " S\ S]\R0                  5      rD " S^ S_\R0                  5      rE " S` Sa\R(                  5      rF\F" 5       \6lG        \F" 5       \AlG        gb)c    )char)
constraint)	namedtype)namedval)tag)univ)useful)rfc2314)rfc2459)rfc2511infc                       \ rS rSrSrg)KeyIdentifier    N__name__
__module____qualname____firstlineno____static_attributes__r       I/var/www/html/venv/lib/python3.13/site-packages/pyasn1_modules/rfc4210.pyr   r          r   r   c                       \ rS rSrSrg)CMPCertificate   r   Nr   r   r   r   r   r      r   r   r   c                       \ rS rSrSrg)OOBCert"   r   Nr   r   r   r   r   r   "   r   r   r   c                       \ rS rSrSrg)CertAnnContent&   r   Nr   r   r   r   r"   r"   &   r   r   r"   c                       \ rS rSrSr\R                  " 5       r\R                  R                  \R                  " S\5      -   r
Srg)PKIFreeText*   z6
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
   r   N)r   r   r   r   __doc__r   
UTF8StringcomponentTyper   
SequenceOfsizeSpecr   ValueSizeConstraintMAXr   r   r   r   r%   r%   *   s6     OO%M''**H*HC*PPHr   r%   c                   P    \ rS rSrSr " S S\R                  5      r\" 5       rSr	g)PollRepContent2   z
    PollRepContent ::= SEQUENCE OF SEQUENCE {
    certReqId              INTEGER,
    checkAfter             INTEGER,  -- time in seconds
    reason                 PKIFreeText OPTIONAL
}
c            	           \ rS rSr\R
                  " \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S\
" 5       5      5      rSrg)PollRepContent.CertReq;   	certReqId
checkAfterreasonr   N)r   r   r   r   r   
NamedTypes	NamedTyper   IntegerOptionalNamedTyper%   r*   r   r   r   r   CertReqr3   ;   sP    !,,T\\^<dlln=''+-@
r   r<   r   N
r   r   r   r   r(   r   Sequencer<   r*   r   r   r   r   r0   r0   2   s     
$-- 
 IMr   r0   c                   P    \ rS rSrSr " S S\R                  5      r\" 5       rSr	g)PollReqContentE   zU
    PollReqContent ::= SEQUENCE OF SEQUENCE {
    certReqId              INTEGER
}

c                   x    \ rS rSr\R
                  " \R                  " S\R                  " 5       5      5      r	Sr
g)PollReqContent.CertReqM   r5   r   N)r   r   r   r   r   r8   r9   r   r:   r*   r   r   r   r   r<   rC   M   s(    !,,T\\^<
r   r<   r   Nr=   r   r   r   r@   r@   E   s     
$-- 

 IMr   r@   c                       \ rS rSrSr\R                  " \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      5      rSrg)InfoTypeAndValueU   z
InfoTypeAndValue ::= SEQUENCE {
 infoType               OBJECT IDENTIFIER,
 infoValue              ANY DEFINED BY infoType  OPTIONAL
}infoType	infoValuer   N)r   r   r   r   r(   r   r8   r9   r   ObjectIdentifierr;   Anyr*   r   r   r   r   rF   rF   U   sH    	
 ((J(=(=(?@##K<Mr   rF   c                   "    \ rS rSr\" 5       rSrg)GenRepContenta   r   Nr   r   r   r   rF   r*   r   r   r   r   rM   rM   a   
    $&Mr   rM   c                   "    \ rS rSr\" 5       rSrg)GenMsgContente   r   NrO   r   r   r   rR   rR   e   rP   r   rR   c                       \ rS rSrSrg)PKIConfirmContenti   r   Nr   r   r   r   rU   rU   i   r   r   rU   c                   6    \ rS rSr\R
                  " 5       rSrg)CRLAnnContentm   r   N)r   r   r   r   r   CertificateListr*   r   r   r   r   rX   rX   m   s    ++-Mr   rX   c            	           \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\" 5       5      \R                  " S\" 5       5      5      r	Sr
g)CAKeyUpdAnnContentq   z
CAKeyUpdAnnContent ::= SEQUENCE {
     oldWithNew   CMPCertificate,
     newWithOld   CMPCertificate,
     newWithNew   CMPCertificate
 }

oldWithNew
newWithOld
newWithNewr   N)r   r   r   r   r(   r   r8   r9   r   r*   r   r   r   r   r\   r\   q   sR     ((L.*:;L.*:;L.*:;Mr   r\   c                       \ rS rSrSr\R                  " \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      5      rSrg)
RevDetails   zx
RevDetails ::= SEQUENCE {
     certDetails         CertTemplate,
     crlEntryDetails     Extensions       OPTIONAL
 }
certDetailscrlEntryDetailsr   N)r   r   r   r   r(   r   r8   r9   r   CertTemplater;   r   
Extensionsr*   r   r   r   r   rb   rb      sL     ((M7+?+?+AB##$5w7I7I7KLMr   rb   c                   "    \ rS rSr\" 5       rSrg)RevReqContent   r   N)r   r   r   r   rb   r*   r   r   r   r   ri   ri      	    LMr   ri   c                   v   \ rS rSrSr\R                  " \R                  " S\" 5       R                  \
R                  " \
R                  \
R                  S5      S95      \R                  " S\R                  " 5       R                  \
R                  " \
R                  \
R                  S5      S95      5      rSrg	)
CertOrEncCert   zm
CertOrEncCert ::= CHOICE {
    certificate     [0] CMPCertificate,
    encryptedCert   [1] EncryptedValue
}
certificater   explicitTagencryptedCertr'   r   N)r   r   r   r   r(   r   r8   r9   r   subtyper   TagtagClassContexttagFormatConstructedr   EncryptedValuer*   r   r   r   r   rm   rm      s     ((M>+;+C+CPSPWPWX[XkXkmp  nF  nF  HI  QJ+C  ,K  	LOW-C-C-E-M-MZ]ZaZabebubuwz  xP  xP  RS  [T-M  .U  	VMr   rm   c                      \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\
R                  " 5       R                  \R                  " \R                  \R                   S5      S95      \R                  " S\
R"                  " 5       R                  \R                  " \R                  \R                   S5      S95      5      rS	rg
)CertifiedKeyPair   z
CertifiedKeyPair ::= SEQUENCE {
     certOrEncCert       CertOrEncCert,
     privateKey      [0] EncryptedValue      OPTIONAL,
     publicationInfo [1] PKIPublicationInfo  OPTIONAL
 }
certOrEncCert
privateKeyr   rp   publicationInfor'   r   N)r   r   r   r   r(   r   r8   r9   rm   r;   r   rw   rs   r   rt   ru   rv   PKIPublicationInfor*   r   r   r   r   ry   ry      s     ((O]_=##L'2H2H2J2R2R_b_f_fgjgzgz|  }U  }U  WX  `Y2R  3Z  	[##$5w7Q7Q7S7[7[hkhohops  qD  qD  FI  F^  F^  `a  ib7[  8c  	dMr   ry   c                   6    \ rS rSr\R
                  " 5       rSrg)POPODecKeyRespContent   r   N)r   r   r   r   r   r:   r*   r   r   r   r   r   r      s    LLNMr   r   c            	           \ rS rSrSr\R                  " \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      5      rSrg)	Challenge   z
Challenge ::= SEQUENCE {
     owf                 AlgorithmIdentifier  OPTIONAL,
     witness             OCTET STRING,
     challenge           OCTET STRING
 }
owfwitness	challenger   N)r   r   r   r   r(   r   r8   r;   r   AlgorithmIdentifierr9   r   OctetStringr*   r   r   r   r   r   r      sd     ((##E7+F+F+HIIt'7'7'9:K)9)9);<Mr   r   c            	       H    \ rS rSrSr\R                  " SSSSSSS	5      rS
rg)	PKIStatus   a  
PKIStatus ::= INTEGER {
     accepted                (0),
     grantedWithMods        (1),
     rejection              (2),
     waiting                (3),
     revocationWarning      (4),
     revocationNotification (5),
     keyUpdateWarning       (6)
 }
)acceptedr   )grantedWithModsr'   )	rejection   )waiting   )revocationWarning   )revocationNotification   )keyUpdateWarning   r   N	r   r   r   r   r(   r   NamedValuesnamedValuesr   r   r   r   r   r      s.    
 && %Kr   r   c                   p    \ rS rSrSr\R                  " SSSSSSS	S
SSSSSSSSSSSSSSSSSSS5      rSrg) PKIFailureInfo   a[  
PKIFailureInfo ::= BIT STRING {
     badAlg              (0),
     badMessageCheck     (1),
     badRequest          (2),
     badTime             (3),
     badCertId           (4),
     badDataFormat       (5),
     wrongAuthority      (6),
     incorrectData       (7),
     missingTimeStamp    (8),
     badPOP              (9),
     certRevoked         (10),
     certConfirmed       (11),
     wrongIntegrity      (12),
     badRecipientNonce   (13),
     timeNotAvailable    (14),
     unacceptedPolicy    (15),
     unacceptedExtension (16),
     addInfoNotAvailable (17),
     badSenderNonce      (18),
     badCertTemplate     (19),
     signerNotTrusted    (20),
     transactionIdInUse  (21),
     unsupportedVersion  (22),
     notAuthorized       (23),
     systemUnavail       (24),
     systemFailure       (25),
     duplicateCertReq    (26)
)badAlgr   )badMessageCheckr'   )
badRequestr   )badTimer   )	badCertIdr   )badDataFormatr   )wrongAuthorityr   )incorrectData   )missingTimeStamp   )badPOP	   )certRevoked
   )certConfirmed   )wrongIntegrity   )badRecipientNonce   )timeNotAvailable   )unacceptedPolicy   )unacceptedExtension   )addInfoNotAvailable   )badSenderNonce   )badCertTemplate   )signerNotTrusted   )transactionIdInUse   )unsupportedVersion   )notAuthorized   )systemUnavail   )systemFailure   )duplicateCertReqr   r   Nr   r   r   r   r   r      sj    < &&!  ## "" 7Kr   r   c            	           \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\
" 5       5      \R                  " S\" 5       5      5      rSrg)PKIStatusInfoi  z
PKIStatusInfo ::= SEQUENCE {
     status        PKIStatus,
     statusString  PKIFreeText     OPTIONAL,
     failInfo      PKIFailureInfo  OPTIONAL
 }
statusstatusStringfailInfor   N)r   r   r   r   r(   r   r8   r9   r   r;   r%   r   r*   r   r   r   r   r   r     sP     ((Hik2##NKMB##J0@AMr   r   c            	           \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\
R                  " 5       5      \R                  " S\" 5       5      5      rSrg)ErrorMsgContenti$  a  
ErrorMsgContent ::= SEQUENCE {
     pKIStatusInfo          PKIStatusInfo,
     errorCode              INTEGER           OPTIONAL,
     -- implementation-specific error codes
     errorDetails           PKIFreeText       OPTIONAL
     -- implementation-specific error details
 }
pKIStatusInfo	errorCodeerrorDetailsr   N)r   r   r   r   r(   r   r8   r9   r   r;   r   r:   r%   r*   r   r   r   r   r   r   $  sS     ((O]_=##K@##NKMBMr   r   c            	           \ rS rSrSr\R                  " \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S\" 5       5      5      rSrg)
CertStatusi5  z|
CertStatus ::= SEQUENCE {
    certHash    OCTET STRING,
    certReqId   INTEGER,
    statusInfo  PKIStatusInfo OPTIONAL
 }
certHashr5   
statusInfor   N)r   r   r   r   r(   r   r8   r9   r   r   r:   r;   r   r*   r   r   r   r   r   r   5  sZ     ((J(8(8(:;K8##L-/BMr   r   c                   "    \ rS rSr\" 5       rSrg)CertConfirmContentiD  r   N)r   r   r   r   r   r*   r   r   r   r   r   r   D  rk   r   r   c                   p   \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\	R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      5      rSrg	)
RevAnnContentiH  z
RevAnnContent ::= SEQUENCE {
     status              PKIStatus,
     certId              CertId,
     willBeRevokedAt     GeneralizedTime,
     badSinceDate        GeneralizedTime,
     crlDetails          Extensions  OPTIONAL
 }
r   certIdwillBeRevokedAtbadSinceDate
crlDetailsr   N)r   r   r   r   r(   r   r8   r9   r   r   CertIdr	   GeneralizedTimer;   r   rg   r*   r   r   r   r   r   r   H  s     ((Hik2Hgnn&67-v/E/E/GHNF,B,B,DE##L'2D2D2FGMr   r   c                   x   \ rS rSrSr\R                  " \R                  " S\R                  " \
" 5       \R                  " S\5      S95      \R                  " S\R                  " \R                   " 5       S9R#                  \R                  " S\5      \R&                  " \R(                  \R*                  S5      S	95      \R                  " S
\R                  " \R.                  " 5       S9R#                  \R                  " S\5      \R&                  " \R(                  \R*                  S5      S	95      5      rSrg)RevRepContenti[  a-  
RevRepContent ::= SEQUENCE {
     status       SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
     revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId
                                         OPTIONAL,
     crls     [1] SEQUENCE SIZE (1..MAX) OF CertificateList
                                         OPTIONAL
r   r'   )r*   r,   revCertsr*   r   r,   rq   crlsr   N)r   r   r   r   r(   r   r8   r9   r   r+   r   r   r-   r.   r;   r   r   rs   r   rt   ru   rv   r   rZ   r*   r   r   r   r   r   r   [  s    ((doo+o#773?	
 	##gnn6FGOO#773?GGC$7$79Q9QSTU P 	
 	##DOO'2I2I2KLTT#773?GGC$7$79Q9QSTU U 	
Mr   r   c                      \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\
" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R"                  " \
" 5       S9R                  \R                  " \R                  \R                  S	5      \R&                  " S	\5      S
95      \R                  " S\R"                  " \" 5       S9R                  \R                  " \R                  \R                  S5      \R&                  " S	\5      S
95      5      rSrg)KeyRecRepContentiz  ay  
KeyRecRepContent ::= SEQUENCE {
     status                  PKIStatusInfo,
     newSigCert          [0] CMPCertificate OPTIONAL,
     caCerts             [1] SEQUENCE SIZE (1..MAX) OF
                                         CMPCertificate OPTIONAL,
     keyPairHist         [2] SEQUENCE SIZE (1..MAX) OF
                                         CertifiedKeyPair OPTIONAL
 }
r   
newSigCertr   rp   caCertsr   r'   )rq   r,   keyPairHistr   r   N)r   r   r   r   r(   r   r8   r9   r   r;   r   rs   r   rt   ru   rv   r   r+   r   r-   r.   ry   r*   r   r   r   r   r   r   z  s+   	 ((Hmo6##.*22GGC$7$79Q9QSTU 3 	

 	##t^5EFNNGGC$7$79Q9QSTU#773? O 	
 	##M4??QaQc3d3l3l 3 3S5M5MqQ33As; 4m 4= 	
Mr   r   c            
          \ rS rSrSr\R                  " \R                  " S\R                  " 5       5      \R                  " S\
" 5       5      \R                  " S\" 5       5      \R                  " S\R                  " 5       5      5      rSrg)	CertResponsei  z
CertResponse ::= SEQUENCE {
     certReqId           INTEGER,
     status              PKIStatusInfo,
     certifiedKeyPair    CertifiedKeyPair    OPTIONAL,
     rspInfo             OCTET STRING        OPTIONAL
 }
r5   r   certifiedKeyPairrspInfor   N)r   r   r   r   r(   r   r8   r9   r   r:   r   r;   ry   r   r*   r   r   r   r   r   r     so     ((K8Hmo6##$68H8JK##It/?/?/AB	Mr   r   c                   X   \ rS rSrSr\R                  " \R                  " S\R                  " \
" 5       S9R                  \R                  " S\5      \R                   " \R"                  \R$                  S5      S95      \R&                  " S\R                  " \" 5       S95      5      rSrg	)
CertRepMessagei  z
CertRepMessage ::= SEQUENCE {
     caPubs       [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
                      OPTIONAL,
     response         SEQUENCE OF CertResponse
 }
caPubsr   r'   r   responser   N)r   r   r   r   r(   r   r8   r;   r   r+   r   rs   r   r-   r.   r   rt   ru   rv   r9   r   r*   r   r   r   r   r   r     s     ((##doo,.gz==aE"%''#*=*=s?W?WYZ"[  ]	
 	Jln(UVMr   r   c                   "    \ rS rSr\" 5       rSrg)POPODecKeyChallContenti  r   N)r   r   r   r   r   r*   r   r   r   r   r   r     s	    KMr   r   c                      \ rS rSrSr\R                  " \R                  " S\R                  " 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R                   " 5       R                  \R                  " \R                  \R                  S5      S95      \R"                  " S\R&                  " 5       5      5      rS	rg
)OOBCertHashi  z
OOBCertHash ::= SEQUENCE {
     hashAlg     [0] AlgorithmIdentifier     OPTIONAL,
     certId      [1] CertId                  OPTIONAL,
     hashVal         BIT STRING
 }
hashAlgr   rp   r   r'   hashValr   N)r   r   r   r   r(   r   r8   r;   r   r   rs   r   rt   ru   rv   r   r   r9   r   	BitStringr*   r   r   r   r   r   r     s     ((##w224<<QTQdQdfif~f~  AB  JC<  D	
 	##gnn&..3773CVCVX[XpXprs;t.u	
 	It~~'78Mr   r   c                   :    \ rS rSrSr\R                  " 5       rSrg)NestedMessageContenti  z&
NestedMessageContent ::= PKIMessages
r   N)	r   r   r   r   r(   r   rK   r*   r   r   r   r   r   r     s     HHJMr   r   c                       \ rS rSrSr\R                  " \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      5      r
Srg)DHBMParameteri  a  
DHBMParameter ::= SEQUENCE {
     owf                 AlgorithmIdentifier,
     -- AlgId for a One-Way Function (SHA-1 recommended)
     mac                 AlgorithmIdentifier
     -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
 }   -- or HMAC [RFC2104, RFC2202])
r   macr   N)r   r   r   r   r(   r   r8   r9   r   r   r*   r   r   r   r   r  r    sK     ((E7#>#>#@AE7#>#>#@AMr   r  z1.2.840.113533.7.66.30c                   ~   \ rS rSrSr\R                  " \R                  " S\R                  " 5       R                  \R                  " SS5      S95      \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S	\R                  " 5       5      5      rS
rg)PBMParameteri  z
PBMParameter ::= SEQUENCE {
     salt                OCTET STRING,
     owf                 AlgorithmIdentifier,
     iterationCount      INTEGER,
     mac                 AlgorithmIdentifier
 }
saltr   rc   )subtypeSpecr   iterationCountr  r   N)r   r   r   r   r(   r   r8   r9   r   r   rs   r   r-   r   r   r:   r*   r   r   r   r   r  r    s     ((D$$&..:;Y;YZ[]`;a.b	
 	E7#>#>#@A,dlln=E7#>#>#@AMr   r  z1.2.840.113533.7.66.13c                       \ rS rSrSrg)PKIProtectioni  r   Nr   r   r   r   r
  r
    r   r   r
  r   rp   c            &          \ rS rSrSr\R                  " \R                  " S\R                  " 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R                  " 5       R                  \R                  " \R                  \R                  S	5      S95      \R                  " S
\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R"                  " 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R                  " 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R                  " 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\" 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S\R                  " 5       R                  \R                  " \R                  \R                  S5      S95      \R                  " S \" 5       R                  \R                  " \R                  \R                  S!5      S95      \R                  " S"\" 5       R                  \R                  " \R                  \R                  S#5      S95      \R                  " S$\" 5       R                  \R                  " \R                  \R                  S%5      S95      \R                  " S&\" 5       R                  \R                  " \R                  \R                  S'5      S95      \R                  " S(\" 5       R                  \R                  " \R                  \R                  S)5      S95      \R                  " S*\" 5       R                  \R                  " \R                  \R                  S+5      S95      \R                  " S,\5      \R                  " S-\" 5       R                  \R                  " \R                  \R                  S.5      S95      \R                  " S/\" 5       R                  \R                  " \R                  \R                  S05      S95      \R                  " S1\" 5       R                  \R                  " \R                  \R                  S25      S95      \R                  " S3\ " 5       R                  \R                  " \R                  \R                  S45      S95      \R                  " S5\!" 5       R                  \R                  " \R                  \R                  S65      S95      \R                  " S7\"" 5       R                  \R                  " \R                  \R                  S85      S95      5      r#S9r$g:);PKIBodyi  a  
PKIBody ::= CHOICE {       -- message-specific body elements
     ir       [0]  CertReqMessages,        --Initialization Request
     ip       [1]  CertRepMessage,         --Initialization Response
     cr       [2]  CertReqMessages,        --Certification Request
     cp       [3]  CertRepMessage,         --Certification Response
     p10cr    [4]  CertificationRequest,   --imported from [PKCS10]
     popdecc  [5]  POPODecKeyChallContent, --pop Challenge
     popdecr  [6]  POPODecKeyRespContent,  --pop Response
     kur      [7]  CertReqMessages,        --Key Update Request
     kup      [8]  CertRepMessage,         --Key Update Response
     krr      [9]  CertReqMessages,        --Key Recovery Request
     krp      [10] KeyRecRepContent,       --Key Recovery Response
     rr       [11] RevReqContent,          --Revocation Request
     rp       [12] RevRepContent,          --Revocation Response
     ccr      [13] CertReqMessages,        --Cross-Cert. Request
     ccp      [14] CertRepMessage,         --Cross-Cert. Response
     ckuann   [15] CAKeyUpdAnnContent,     --CA Key Update Ann.
     cann     [16] CertAnnContent,         --Certificate Ann.
     rann     [17] RevAnnContent,          --Revocation Ann.
     crlann   [18] CRLAnnContent,          --CRL Announcement
     pkiconf  [19] PKIConfirmContent,      --Confirmation
     nested   [20] NestedMessageContent,   --Nested Message
     genm     [21] GenMsgContent,          --General Message
     genp     [22] GenRepContent,          --General Response
     error    [23] ErrorMsgContent,        --Error Message
     certConf [24] CertConfirmContent,     --Certificate confirm
     pollReq  [25] PollReqContent,         --Polling request
     pollRep  [26] PollRepContent          --Polling response

irr   rp   ipr'   crr   cpr   p10crr   popdeccr   popdecrr   kurr   kupr   krrr   krpr   rrr   rpr   ccrr   ccpr   ckuannr   cannr   rannr   crlannr   pkiconfr   nestedgenmr   genr   errorr   certConfr   pollReqr   pollRepr   r   N)%r   r   r   r   r(   r   r8   r9   r   CertReqMessagesrs   r   rt   ru   rv   r   r
   CertificationRequestr   r   r   ri   r   r\   r"   r   rX   rU   nestedMessageContentrR   rM   r   r   r@   r0   r*   r   r   r   r   r  r    sU   > (('))+33GGC$7$79Q9QSTU 4 	

 	."**GGC$7$79Q9QSTU + 	

 	'))+33GGC$7$79Q9QSTU 4 	

 	."**GGC$7$79Q9QSTU + 	

 	W113;;GGC$7$79Q9QSTU < 	

 	-/77GGC$7$79Q9QSTU 8 	

 	,.66GGC$7$79Q9QSTU 7 	

 	7**,44GGC$7$79Q9QSTU 5 	

 	>#++GGC$7$79Q9QSTU , 	

 	7**,44GGC$7$79Q9QSTU 5 	

 	#%--GGC$7$79Q9QSUV . 	

 	-/))GGC$7$79Q9QSUV * 	

 	-/))GGC$7$79Q9QSUV * 	

 	7**,44GGC$7$79Q9QSUV 5 	

 	>#++GGC$7$79Q9QSUV , 	

 	(*22GGC$7$79Q9QSUV 3 	

 	N$,,GGC$7$79Q9QSUV - 	

 	MO++GGC$7$79Q9QSUV , 	

 	mo--GGC$7$79Q9QSUV . 	

 	(*22GGC$7$79Q9QSUV 3 	

 	*	
 	MO++GGC$7$79Q9QSUV , 	

 	=?**GGC$7$79Q9QSUV + 	

 	_&..GGC$7$79Q9QSUV / 	

 	*,44GGC$7$79Q9QSUV 5 	

 	~'//GGC$7$79Q9QSUV 0 	

 	~'//GGC$7$79Q9QSUV 0 	
KJMr   r  c                   8   \ rS rSrSr\R                  " \R                  " S\R                  " \
R                  " SS5      S95      \R                  " S\R                  " 5       5      \R                  " S\R                  " 5       5      \R                  " S	\R                   " 5       R#                  \R&                  " \R(                  \R*                  S
5      S95      \R                  " S\R,                  " 5       R#                  \R&                  " \R(                  \R.                  S5      S95      \R                  " S\R0                  " 5       R#                  \R&                  " \R(                  \R*                  S5      S95      \R                  " S\R0                  " 5       R#                  \R&                  " \R(                  \R*                  S5      S95      \R                  " S\R2                  " 5       R#                  \R&                  " \R(                  \R*                  S5      S95      \R                  " S\R2                  " 5       R#                  \R&                  " \R(                  \R*                  S5      S95      \R                  " S\R2                  " 5       R#                  \R&                  " \R(                  \R*                  S5      S95      \R                  " S\" 5       R#                  \R&                  " \R(                  \R.                  S5      S95      \R                  " S\R6                  " \" 5       R#                  \R<                  " S\5      S9S9R#                  \R&                  " \R(                  \R*                  S5      S95      5      r Sr!g) 	PKIHeaderi  a  
PKIHeader ::= SEQUENCE {
pvno                INTEGER     { cmp1999(1), cmp2000(2) },
sender              GeneralName,
recipient           GeneralName,
messageTime     [0] GeneralizedTime         OPTIONAL,
protectionAlg   [1] AlgorithmIdentifier     OPTIONAL,
senderKID       [2] KeyIdentifier           OPTIONAL,
recipKID        [3] KeyIdentifier           OPTIONAL,
transactionID   [4] OCTET STRING            OPTIONAL,
senderNonce     [5] OCTET STRING            OPTIONAL,
recipNonce      [6] OCTET STRING            OPTIONAL,
freeText        [7] PKIFreeText             OPTIONAL,
generalInfo     [8] SEQUENCE SIZE (1..MAX) OF
                 InfoTypeAndValue     OPTIONAL
}

pvno)cmp1999r'   )cmp2000r   )r   sender	recipientmessageTimer   rp   protectionAlgr'   	senderKIDr   recipKIDr   transactionIDr   senderNoncer   
recipNoncer   freeTextr   generalInfo)r,   r   r   r   N)"r   r   r   r   r(   r   r8   r9   r   r:   r   r   r   GeneralNamer;   r	   r   rs   r   rt   ru   tagFormatSimpler   rv   r   r   r%   r+   rF   r   r-   r.   r*   r   r   r   r   r,  r,    s5   $ ((DLL$00P	

 	Hg&9&9&;<K)<)<)>?##M63I3I3K3S3S 3 3S5H5H!L 4T 4N 	O##OW5P5P5R5Z5Z 3 3S5M5MqQ 6[ 6S 	T##K1F1F1H1P1P 3 3S5H5H!L 2Q 2N 	O##J0E0E0G0O0O 3 3S5H5H!L 1P 1N 	O##OT5E5E5G5O5O 3 3S5H5H!L 6P 6N 	O##M43C3C3E3M3M 3 3S5H5H!L 4N 4N 	O##L$2B2B2D2L2L 3 3S5H5H!L 3M 3N 	O##J0E0E 3 3S5M5MqQ 1F 1S 	T##M$(OO6F6H6P6P5?5S5STUWZ5[ 7Q 7*%& '.g 3 3S5H5H!L '. 'N	
1 Mr   r,  c                       \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\	" 5       5      5      r
Srg)ProtectedParti  zO
ProtectedPart ::= SEQUENCE {
    header    PKIHeader,
    body      PKIBody
}
headerrI   r   N)r   r   r   r   r(   r   r8   r9   r,  r  r*   r   r   r   r   r>  r>    s=     ((Hik2K3Mr   r>  c                      \ rS rSrSr\R                  " \R                  " S\" 5       5      \R                  " S\	" 5       5      \R                  " S\" 5       R                  \R                  " \R                  \R                   S5      S95      \R                  " S\R$                  " \" 5       S	9R                  \R*                  " S
\5      \R                  " \R                  \R.                  S
5      S95      5      rSrg)
PKIMessagei  z
PKIMessage ::= SEQUENCE {
header           PKIHeader,
body             PKIBody,
protection   [0] PKIProtection OPTIONAL,
extraCerts   [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
              OPTIONAL
 }r?  body
protectionr   rp   
extraCertsr   r'   r   r   N)r   r   r   r   r(   r   r8   r9   r,  r  r;   r
  rs   r   rt   ru   r<  r   r+   r   r   r-   r.   rv   r*   r   r   r   r   rA  rA    s    
 ((Hik2FGI.##L-/2I2I 3 3S5H5H!L 3J 3N 	O##L$(OO6D6F%&&-g1;1O1OPQSV1W47GGC<O<OQTQiQikl4m '. '&	&Mr   rA  c                   z    \ rS rSrSr\" 5       r\R                  R                  \
R                  " S\5      -   r	Srg)PKIMessagesi  z6
PKIMessages ::= SEQUENCE SIZE (1..MAX) OF PKIMessage
r'   r   N)r   r   r   r   r(   rA  r*   r   r+   r,   r   r-   r.   r   r   r   r   rF  rF    s1     LM''**H*HC*PPHr   rF  N)Hpyasn1.typer   r   r   r   r   r   r	   pyasn1_modulesr
   r   r   floatr.   r   r   Certificater   r   r"   r+   r%   r0   r@   r>   rF   rM   rR   NullrU   rX   r\   rb   ri   Choicerm   ry   r   r   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rJ   id_DHBasedMacr  id_PasswordBasedMacr
  rs   rt   ru   rv   r*  r  r,  r>  rA  rF  _componentTyper   r   r   <module>rP     s:    " !      " " "El	D$$ 		W(( 		n 		^ 	Q$// QT__ &T__  	t}} 	'DOO ''DOO '			 	.DOO . 
 
!DOO !
DKK 
t}} #DOO #  .;T^^ ;|DMM dmm " ! !DMM &DMM >t}} >4== "T]] & T__  $-- *4?? DMM  %%&>?4== & ++,DE 	DNN 	 ,-55++S-E-ErJ 6 L jdkk jZ3 3l
DMM 
 2Q$// Q '2m  #&1m  #r   