Jamie Reece Wilson
66b948697b
[*] Added POSIX-like rng fd close on deinit [*] Added verbose arg checks for unix env vars
78 lines
1.6 KiB
C++
78 lines
1.6 KiB
C++
/***
|
|
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: X509.hpp
|
|
Date: 2021-6-11
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
#include "EExtendedUsage.hpp"
|
|
|
|
namespace Aurora::Crypto::X509
|
|
{
|
|
struct CertName
|
|
{
|
|
AU_COPY_MOVE_DEF(CertName);
|
|
AuString commonName;
|
|
|
|
AuString department;
|
|
AuString organization;
|
|
AuString address;
|
|
AuString locality;
|
|
AuString state;
|
|
AuString countryCode;
|
|
AuString postcode;
|
|
|
|
AuString name;
|
|
AuString email;
|
|
AuString title;
|
|
};
|
|
|
|
struct DecodedCertificate
|
|
{
|
|
AU_COPY_MOVE_DEF(DecodedCertificate);
|
|
int version {};
|
|
|
|
struct Issuer : CertName
|
|
{
|
|
AU_COPY_MOVE_DEF(Issuer);
|
|
Memory::ByteBuffer id;
|
|
} issuer;
|
|
|
|
struct Subject : CertName
|
|
{
|
|
AU_COPY_MOVE_DEF(Subject);
|
|
Memory::ByteBuffer id;
|
|
} subject;
|
|
|
|
struct Vaildity
|
|
{
|
|
AU_COPY_MOVE_DEF(Vaildity);
|
|
AuUInt issued;
|
|
AuUInt expire;
|
|
} validity;
|
|
|
|
AuList<AuUInt8> serialNumber;
|
|
AuList<AuUInt8> algorithmOid;
|
|
|
|
AuList<AuString> AIAs;
|
|
// TODO: AuString CRL;
|
|
|
|
// TODO: AuList<String> subjectNames;
|
|
|
|
Hashing::EHashType digest;
|
|
|
|
AuList<EExtendedUsage> usage;
|
|
|
|
int iMaxPath {};
|
|
bool bIsCA {};
|
|
|
|
// TODO: ...
|
|
};
|
|
|
|
AUKN_SYM bool Decode(const Certificate &der, DecodedCertificate &out);
|
|
AUKN_SYM bool Validate(const Certificate &der, const Certificate &parentDer);
|
|
}
|
|
|
|
#include "GenerateCertificate.hpp" |