Packages
hackney
3.0.3
4.7.2
4.7.1
4.7.0
4.6.1
4.6.0
4.5.2
4.5.1
4.5.0
4.4.5
4.4.3
4.4.2
4.4.1
4.4.0
4.3.0
4.2.3
4.2.2
4.2.1
4.2.0
4.1.0
4.0.3
4.0.2
4.0.1
4.0.0
3.2.1
3.2.0
3.1.2
3.1.1
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0
retired
2.0.1
2.0.0
2.0.0-beta.1
1.25.0
1.24.1
1.24.0
1.23.0
1.22.0
1.21.0
1.20.1
1.20.0
1.19.1
1.19.0
1.18.2
1.18.1
1.18.0
1.17.4
1.17.3
1.17.2
1.17.1
1.17.0
1.16.0
1.15.2
1.15.1
1.15.0
1.14.3
1.14.2
1.14.0
1.13.0
1.12.1
1.12.0
1.11.0
1.10.1
1.10.0
1.9.0
1.8.6
1.8.5
1.8.4
1.8.3
1.8.2
1.8.0
1.7.1
1.7.0
1.6.6
retired
1.6.5
1.6.4
retired
1.6.3
1.6.2
1.6.1
1.6.0
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.10
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.0
1.0.6
1.0.5
1.0.2
1.0.1
0.15.2
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
Simple HTTP client with HTTP/1.1, HTTP/2, and HTTP/3 support
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
c_src/boringssl/include/openssl/pki/certificate.h
// Copyright 2023 The BoringSSL Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#if !defined(OPENSSL_HEADER_BSSL_PKI_CERTIFICATE_H_) && defined(__cplusplus)
#define OPENSSL_HEADER_BSSL_PKI_CERTIFICATE_H_
#include <memory>
#include <string>
#include <string_view>
#include <openssl/base.h> // IWYU pragma: export
#include <openssl/span.h>
BSSL_NAMESPACE_BEGIN
struct CertificateInternals;
// Certificate represents a parsed X.509 certificate. It includes accessors for
// the various things that one might want to extract from a certificate,
class OPENSSL_EXPORT Certificate {
public:
Certificate(Certificate&& other);
Certificate(const Certificate& other) = delete;
~Certificate();
Certificate& operator=(const Certificate& other) = delete;
// FromDER returns a certificate from an DER-encoded X.509 object in |der|.
// In the event of a failure, it will return no value, and |out_diagnostic|
// may be set to a string of human readable debugging information if
// information about the failure is available.
static std::unique_ptr<Certificate> FromDER(
bssl::Span<const uint8_t> der, std::string *out_diagnostic);
// FromPEM returns a certificate from the first CERTIFICATE PEM block in
// |pem|. In the event of a failure, it will return no value, and
// |out_diagnostic| may be set to a string of human readable debugging
// information if information about the failure is available.
static std::unique_ptr<Certificate> FromPEM(
std::string_view pem, std::string *out_diagnostic);
// IsSelfIssued returns true if the certificate is "self-issued" per RFC 5280
// section 6.1. I.e. that the subject and issuer names are equal after
// canonicalization (and no other checks).
//
// Other contexts may have a different notion such as "self signed" which
// may or may not be this, and may check other properties of the certificate.
bool IsSelfIssued() const;
// Validity specifies the temporal validity of a certificate, expressed in
// POSIX time values of seconds since the POSIX epoch. The certificate is
// valid at POSIX time t in second granularity, where not_before <= t <=
// not_after.
struct Validity {
int64_t not_before;
int64_t not_after;
};
Validity GetValidity() const;
// The binary, big-endian, DER representation of the certificate serial
// number. It may include a leading 00 byte.
bssl::Span<const uint8_t> GetSerialNumber() const;
private:
explicit Certificate(std::unique_ptr<CertificateInternals> internals);
std::unique_ptr<CertificateInternals> internals_;
};
BSSL_NAMESPACE_END
#endif // OPENSSL_HEADER_BSSL_PKI_CERTIFICATE_H_ && __cplusplus