– EXPORTS All –
IMPORTS
BigIntegerStr
FROM VdaEnhancedTypes
pkcs
FROM PKCS1-OIDS
;
– base OIDs for Apple, Apple Data Security
appleBaseOid OBJECT IDENTIFIER ::= { 1 2 840 113635 }
appleDataSecurity OBJECT IDENTIFIER ::= { appleBaseOid 100 }
– base OIDs for Apple Trust Policies and Algorithms
appleTrustPolicy OBJECT IDENTIFIER ::= { appleDataSecurity 1 }
appleSecurityAlgorithm OBJECT IDENTIFIER ::=蕒 appleDataSecurity 2 }
– Apple trust policy OIDs
appleISignTP OBJECT IDENTIFIER ::= { appleTrustPolicy 1 }
appleX509Basic OBJECT IDENTIFIER ::= { appleTrustPolicy 2 }
appleSSLPolicy OBJECT IDENTIFIER ::= { appleTrustPolicy 3 }
– Apple algorithms
appleFee OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 1 }
appleAsc OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 2 }
appleFeeMD5 OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 3 }
appleFeeSHA1 OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 4 }
appleFeed OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 5 }
appleFeedExp OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 6 }
appleECDSA OBJECT IDENTIFIER ::= { appleSecurityAlgorithm 7 }
– PKCS3 OIDs
pkcs-3 OBJECT IDENTIFIER ::= { pkcs 3 }
dhKeyAgreement OBJECT IDENTIFIER ::= { pkcs-3 1 }
– FEE ElGamal-style signature
FEEElGamalSignature ::= SEQUENCE {
u BigIntegerStr,
pmX BigIntegerStr
}
– FEE ECDSA-style signature
FEEECDSASignature ::= SEQUENCE {
c BigIntegerStr,
d BigIntegerStr
}
– FEE Curve parameters
FEEPrimeType ::= INTEGER { pt-mersenne(0), pt-fee(1), pt-general(2) }
FEECurveType ::= INTEGER { ct-montgomery(0), ct-weierstrass(1), ct-general(2) }
FEECurveParameters ::= SEQUENCE
{
primeType FEEPrimeType,
curveType FEECurveType,
q INTEGER, – unsigned
k INTEGER, – signed
m INTEGER,
a BigIntegerStr,
bb BigIntegerStr, – can’t use variable/field b
c BigIntegerStr,
x1Plus BigIntegerStr,
x1Minus BigIntegerStr,
cOrderPlus BigIntegerStr,
cOrderMinus BigIntegerStr,
x1OrderPlus BigIntegerStr,
x1OrderMinus BigIntegerStr,
basePrime BigIntegerStr OPTIONAL – iff FEEPrimeType == pt-general
}
– FEE keys
FEEPublicKey ::= SEQUENCE
{
version INTEGER,
curveParams FEECurveParameters,
plusX BigIntegerStr,
minusX BigIntegerStr,
plusY BigIntegerStr OPTIONAL – iff FEECurveType == ct-weierstrass
}
FEEPrivateKey ::= SEQUENCE
{
version INTEGER,
curveParams FEECurveParameters,
privData BigIntegerStr
}
DSAPrivateKey ::= SEQUENCE
{
version INTEGER,
dsaAlg DSAAlgorithmId,
privateKey OCTET STRING
}
DSAPublicKey ::= SEQUENCE
{
dsaAlg DSAAlgorithmId,
publicKey BIT STRING
}
DSAAlgorithmId ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER, – id_dsa from sm_cms
params DSABsafeParams
}
DSABsafeParams ::= SEQUENCE
{
keySizeInBits INTEGER,
p BigIntegerStr,
q BigIntegerStr,
g BigIntegerStr
}
DSAPrivateKeyOcts ::= SEQUENCE
{
privateKey BigIntegerStr
}
DSAPublicKeyX509 ::= SEQUENCE
{
dsaAlg DSAAlgorithmIdX509,
publicKey BIT STRING
}
DSAAlgorithmIdX509 ::= SEQUENCE
{
algorithm OBJECT IDENTIFIER, – id_dsa from sm_cms
–
– this replaces AsnAny parameters; it is the DSA parameter format
– which is common to the CSP and to openssl
–
params DSAAlgParams
}
DSAPrivateKeyOpenssl ::= SEQUENCE
{
version INTEGER,
p BigIntegerStr,
q BigIntegerStr,
g BigIntegerStr,
pub BigIntegerStr,
priv BigIntegerStr
}
DSASignature ::= SEQUENCE
{
r BigIntegerStr,
s BigIntegerStr
}
DSAAlgParams ::= SEQUENCE
{
p BigIntegerStr,
q BigIntegerStr,
g BigIntegerStr
}
– Diffie Hellman per PKCS3
DHPrivateKey ::= SEQUENCE
{
dHOid OBJECT IDENTIFIER, – dhKeyAgreement
params DHParameter,
secretPart BigIntegerStr
}
DHParameterBlock ::= SEQUENCE
{
oid OBJECT IDENTIFIER, – pkcs-3
params DHParameter
}
DHParameter ::= SEQUENCE
{
prime BigIntegerStr, – p
base BigIntegerStr, – g
privateValueLength BigIntegerStr OPTIONAL
}
END – APPLE-OIDS