Automata PCS DAO
Summary
The PcsDao contract is the core contract for managing Intel PCS (Provisioning Certification Service) collateral onchain. It handles essential certificates including the Intel SGX Root CA, intermediate CAs (PCK Platform CA, PCK Processor CA, TCB Signing CA), and their corresponding CRLs (Certificate Revocation Lists). All other DAO contracts depend on this contract to fetch issuer certificates and CRLs for signature verification.
Methods
getCertificateById
getCertificateByIdfunction getCertificateById(CA ca) external view returns (bytes memory cert, bytes memory crl)Gets the certificate and its corresponding CRL for the specified Certificate Authority type.
Parameters:
ca(CA): Certificate Authority type - CA.ROOT, CA.SIGNING, CA.PROCESSOR, or CA.PLATFORM
Returns:
cert(bytes): DER-encoded certificatecrl(bytes): DER-encoded CRL signed by the certificate
upsertPcsCertificates
upsertPcsCertificatesfunction upsertPcsCertificates(CA ca, bytes calldata cert) external returns (bytes32 attestationId)Upserts (inserts or updates) a PCS certificate onchain with signature verification, revocation checking, and rollback protection.
Parameters:
ca(CA): Certificate Authority type - CA.ROOT, CA.SIGNING, CA.PROCESSOR, or CA.PLATFORMcert(bytes): DER-encoded certificate
Returns:
attestationId(bytes32): The attestation ID returned by the resolver
upsertPckCrl
upsertPckCrlfunction upsertPckCrl(CA ca, bytes calldata crl) external returns (bytes32 attestationId)Upserts (inserts or updates) a PCK Certificate Revocation List onchain with signature verification and rollback protection.
Parameters:
ca(CA): Certificate Authority type - CA.PROCESSOR or CA.PLATFORMcrl(bytes): DER-encoded CRL
Returns:
attestationId(bytes32): The attestation ID returned by the resolver
upsertRootCACrl
upsertRootCACrlfunction upsertRootCACrl(bytes calldata rootcacrl) external returns (bytes32 attestationId)Upserts (inserts or updates) the Root CA Certificate Revocation List onchain with signature verification and rollback protection.
Parameters:
rootcacrl(bytes): DER-encoded Root CA CRL
Returns:
attestationId(bytes32): The attestation ID returned by the resolver
Reverts
Missing_Certificate(CA ca)
33247a8a
Certificate not found for the specified CA
Invalid_PCK_CA(CA ca)
9849e774
Invalid CA parameter for PCK CRL operations
Certificate_Revoked(CA ca, uint256 serialNum)
291990cd
Certificate has been revoked
Certificate_Expired(CA ca)
5f066611
Certificate has expired
Crl_Expired(CA ca)
6d8932ad
CRL has expired
Invalid_Issuer_Name()
1e7ab599
Certificate/CRL issuer name does not match expected value
Invalid_Subject_Name()
92ec707e
Certificate subject name does not match expected value
Expired_Certificates()
e6612a12
Certificate/CRL timestamps are invalid
TCB_Mismatch()
4a629e24
TCB values do not match
Missing_Issuer()
cd69d374
Issuer certificate not found
Invalid_Signature()
e7ef341f
Signature verification failed
Certificate_Out_Of_Date()
9f4daa9e
Attempting to upsert older certificate/CRL
Last updated
Was this helpful?