Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9734cfc7 authored by Yifan Hong's avatar Yifan Hong
Browse files

binder: CertificateFormat -> RpcCertificateFormat.

Fixes: 199553357
Test: TH

Change-Id: Ifaea4598f125ac5a8395ea30729a0059a792efbb
parent 2c23db14
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -46,23 +46,23 @@ bssl::UniquePtr<X509> fromDer(const std::vector<uint8_t>& cert) {
} // namespace

bssl::UniquePtr<X509> deserializeCertificate(const std::vector<uint8_t>& cert,
                                             CertificateFormat format) {
                                             RpcCertificateFormat format) {
    switch (format) {
        case CertificateFormat::PEM:
        case RpcCertificateFormat::PEM:
            return fromPem(cert);
        case CertificateFormat::DER:
        case RpcCertificateFormat::DER:
            return fromDer(cert);
    }
    LOG_ALWAYS_FATAL("Unsupported format %d", static_cast<int>(format));
}

std::vector<uint8_t> serializeCertificate(X509* x509, CertificateFormat format) {
std::vector<uint8_t> serializeCertificate(X509* x509, RpcCertificateFormat format) {
    bssl::UniquePtr<BIO> certBio(BIO_new(BIO_s_mem()));
    switch (format) {
        case CertificateFormat::PEM: {
        case RpcCertificateFormat::PEM: {
            TEST_AND_RETURN({}, PEM_write_bio_X509(certBio.get(), x509));
        } break;
        case CertificateFormat::DER: {
        case RpcCertificateFormat::DER: {
            TEST_AND_RETURN({}, i2d_X509_bio(certBio.get(), x509));
        } break;
        default: {
+1 −1
Original line number Diff line number Diff line
@@ -141,7 +141,7 @@ sp<IBinder> RpcServer::getRootObject() {
    return ret;
}

std::vector<uint8_t> RpcServer::getCertificate(CertificateFormat format) {
std::vector<uint8_t> RpcServer::getCertificate(RpcCertificateFormat format) {
    std::lock_guard<std::mutex> _l(mLock);
    return mCtx->getCertificate(format);
}
+1 −1
Original line number Diff line number Diff line
@@ -703,7 +703,7 @@ bool RpcSession::removeIncomingConnection(const sp<RpcConnection>& connection) {
    return false;
}

std::vector<uint8_t> RpcSession::getCertificate(CertificateFormat format) {
std::vector<uint8_t> RpcSession::getCertificate(RpcCertificateFormat format) {
    return mCtx->getCertificate(format);
}

+1 −1
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ public:
    std::unique_ptr<RpcTransport> newTransport(android::base::unique_fd fd, FdTrigger*) const {
        return std::make_unique<RpcTransportRaw>(std::move(fd));
    }
    std::vector<uint8_t> getCertificate(CertificateFormat) const override { return {}; }
    std::vector<uint8_t> getCertificate(RpcCertificateFormat) const override { return {}; }
};

} // namespace
+2 −2
Original line number Diff line number Diff line
@@ -451,7 +451,7 @@ public:
            std::shared_ptr<RpcCertificateVerifier> verifier);
    std::unique_ptr<RpcTransport> newTransport(android::base::unique_fd fd,
                                               FdTrigger* fdTrigger) const override;
    std::vector<uint8_t> getCertificate(CertificateFormat) const override;
    std::vector<uint8_t> getCertificate(RpcCertificateFormat) const override;

protected:
    static ssl_verify_result_t sslCustomVerify(SSL* ssl, uint8_t* outAlert);
@@ -460,7 +460,7 @@ protected:
    std::shared_ptr<RpcCertificateVerifier> mCertVerifier;
};

std::vector<uint8_t> RpcTransportCtxTls::getCertificate(CertificateFormat format) const {
std::vector<uint8_t> RpcTransportCtxTls::getCertificate(RpcCertificateFormat format) const {
    X509* x509 = SSL_CTX_get0_certificate(mCtx.get()); // does not own
    return serializeCertificate(x509, format);
}
Loading