OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
DER_Keys.h
Go to the documentation of this file.
1/* Copyright (c) 2005-2007 Apple Inc. All Rights Reserved. */
2
3/*
4 * DER_Keys.h - support for decoding RSA keys
5 *
6 * Created Nov. 8 2005 by dmitch
7 */
8
9#ifndef _DER_KEYS_H_
10#define _DER_KEYS_H_
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#include "libDER.h"
17#include "DER_Decode.h"
18
19/* Algorithm Identifier components */
20typedef struct {
21 DERItem oid; /* OID */
22 DERItem params; /* ASN_ANY, optional, DER_DEC_SAVE_DER */
24
25/* DERItemSpecs to decode into a DERAlgorithmId */
28
29/* X509 SubjectPublicKeyInfo */
30typedef struct {
31 DERItem algId; /* sequence, DERAlgorithmId */
32 DERItem pubKey; /* BIT STRING */
34
35/* DERItemSpecs to decode into a DERSubjPubKeyInfo */
38
39/*
40 * RSA public key in PKCS1 format; this is inside the BIT_STRING in
41 * DERSubjPubKeyInfo.pubKey.
42 */
43typedef struct {
44 DERItem modulus; /* n - INTEGER */
45 DERItem pubExponent; /* e - INTEGER */
47
48/* DERItemSpecs to decode/encode into/from a DERRSAPubKeyPKCS1 */
51
52/*
53 * RSA public key in custom (to this library) format, including
54 * the reciprocal. All fields are integers.
55 */
56typedef struct {
58 DERItem reciprocal; /* reciprocal of modulus */
61
62/* DERItemSpecs to decode/encode into/from a DERRSAPubKeyApple */
65
66/*
67 * RSA Private key, PKCS1 format, CRT option.
68 * All fields are integers.
69 */
70typedef struct {
71 DERItem p; /* p * q = n */
73 DERItem dp; /* d mod (p-1) */
74 DERItem dq; /* d mod (q-1) */
77
78/* DERItemSpecs to decode into a DERRSAPrivKeyCRT */
81
82/* Fully formed RSA key pair, for generating a PKCS1 private key */
83typedef struct {
85 DERItem n; /* modulus */
86 DERItem e; /* public exponent */
87 DERItem d; /* private exponent */
88 DERItem p; /* n = p*q */
90 DERItem dp; /* d mod (p-1) */
91 DERItem dq; /* d mod (q-1) */
92 DERItem qInv; /* q^(-1) mod p */
94
95/* DERItemSpecs to encode a DERRSAKeyPair */
98
99#ifdef __cplusplus
100}
101#endif
102
103#endif /* _DER_KEYS_H_ */
104
const DERItemSpec DERRSAPubKeyAppleItemSpecs[]
Definition DER_Keys.c:107
const DERItemSpec DERRSAPubKeyPKCS1ItemSpecs[]
Definition DER_Keys.c:94
const DERShort DERNumRSAPubKeyAppleItemSpecs
Definition DER_Keys.c:119
const DERShort DERNumSubjPubKeyInfoItemSpecs
Definition DER_Keys.c:48
const DERItemSpec DERSubjPubKeyInfoItemSpecs[]
Definition DER_Keys.c:38
const DERItemSpec DERAlgorithmIdItemSpecs[]
Definition DER_Keys.c:25
const DERShort DERNumAlgorithmIdItemSpecs
Definition DER_Keys.c:34
const DERShort DERNumRSAKeyPairItemSpecs
const DERItemSpec DERRSAKeyPairItemSpecs[]
const DERShort DERNumRSAPrivKeyCRTItemSpecs
Definition DER_Keys.c:86
const DERShort DERNumRSAPubKeyPKCS1ItemSpecs
Definition DER_Keys.c:103
const DERItemSpec DERRSAPrivKeyCRTItemSpecs[]
Definition DER_Keys.c:54
uint16_t DERShort
DERItem oid
Definition DER_Keys.h:21
DERItem params
Definition DER_Keys.h:22
DERItem q
Definition DER_Keys.h:89
DERItem n
Definition DER_Keys.h:85
DERItem qInv
Definition DER_Keys.h:92
DERItem p
Definition DER_Keys.h:88
DERItem version
Definition DER_Keys.h:84
DERItem dq
Definition DER_Keys.h:91
DERItem dp
Definition DER_Keys.h:90
DERItem e
Definition DER_Keys.h:86
DERItem d
Definition DER_Keys.h:87
DERItem pubExponent
Definition DER_Keys.h:59
DERItem modulus
Definition DER_Keys.h:57
DERItem reciprocal
Definition DER_Keys.h:58
DERItem modulus
Definition DER_Keys.h:44
DERItem pubExponent
Definition DER_Keys.h:45