iBoot/include/lib/DERApTicket.h

62 lines
1.7 KiB
C

/*
* Copyright (C) 2011 Apple Inc. All rights reserved.
*
* This document is the property of Apple Inc.
* It is considered confidential and proprietary.
*
* This document may not be reproduced or transmitted in any form,
* in whole or in part, without the express written permission of
* Apple Inc.
*/
#ifndef DERAPTICKET_H
#define DERAPTICKET_H
#include <stdbool.h>
#include <libDER/libDER.h>
/* AP Ticket */
typedef struct {
DERItem signatureAlgorithm; /* AlgorithmId */
DERItem body; /* SET OF OCTECT STRING, DER_DEC_SAVE_DER */
DERItem signature; /* OCTET STRING */
DERItem certificates; /* SEQUENCE of CERTIFICATE */
} DERApTicket;
/* Cert extension */
typedef struct {
DERItem version; /* current version is 0; omitted until version 1 */
DERItem override;
DERItem append; /* optional; unsupported in version 0 */
DERItem remove; /* optional; unsupported in version 0 */
} DERApTicketCertExtension;
/* DERItemSpecs to decode into a DERApTicket */
extern const DERItemSpec DERApTicketItemSpecs[];
extern const DERSize DERNumApTicketItemSpecs;
DERReturn
DERApTicketCopyTagData(
const DERItem *container,
DERTag tag,
uint8_t *buffer,
DERSize *ioLength );
DERReturn
DERApTicketDecode(
const DERItem * contents,
DERApTicket * outTicket,
DERSize * outNumUsedBytes );
DERReturn
DERApTicketValidate(
const DERApTicket *ticket,
bool isRestore );
DERReturn
DERApTicketParseLengthFromBuffer(
const uint8_t * buffer,
size_t length,
size_t * outTicketLength );
#endif /* DERAPTICKET_H */