Loading drm/libmediadrmrkp/include/DrmRemotelyProvisionedComponent.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -35,7 +35,7 @@ using ::ndk::ScopedAStatus; class DrmRemotelyProvisionedComponent : public BnRemotelyProvisionedComponent { class DrmRemotelyProvisionedComponent : public BnRemotelyProvisionedComponent { public: public: DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, std::string drmVendor, DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, std::string drmVendor, std::string drmDesc); std::string drmDesc, std::vector<uint8_t> bcc); ScopedAStatus getHardwareInfo(RpcHardwareInfo* info) override; ScopedAStatus getHardwareInfo(RpcHardwareInfo* info) override; ScopedAStatus generateEcdsaP256KeyPair(bool testMode, MacedPublicKey* macedPublicKey, ScopedAStatus generateEcdsaP256KeyPair(bool testMode, MacedPublicKey* macedPublicKey, Loading @@ -59,6 +59,7 @@ class DrmRemotelyProvisionedComponent : public BnRemotelyProvisionedComponent { std::shared_ptr<IDrmPlugin> mDrm; std::shared_ptr<IDrmPlugin> mDrm; std::string mDrmVendor; std::string mDrmVendor; std::string mDrmDesc; std::string mDrmDesc; std::vector<uint8_t> mBcc; }; }; } // namespace android::mediadrm } // namespace android::mediadrm Loading drm/libmediadrmrkp/src/DrmRemotelyProvisionedComponent.cpp +8 −11 Original line number Original line Diff line number Diff line Loading @@ -27,8 +27,13 @@ namespace android::mediadrm { namespace android::mediadrm { DrmRemotelyProvisionedComponent::DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, DrmRemotelyProvisionedComponent::DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, std::string drmVendor, std::string drmVendor, std::string drmDesc) std::string drmDesc, : mDrm(std::move(drm)), mDrmVendor(std::move(drmVendor)), mDrmDesc(std::move(drmDesc)) {} std::vector<uint8_t> bcc) : mDrm(std::move(drm)), mDrmVendor(std::move(drmVendor)), mDrmDesc(std::move(drmDesc)), mBcc(std::move(bcc)) {} ScopedAStatus DrmRemotelyProvisionedComponent::getHardwareInfo(RpcHardwareInfo* info) { ScopedAStatus DrmRemotelyProvisionedComponent::getHardwareInfo(RpcHardwareInfo* info) { info->versionNumber = 3; info->versionNumber = 3; info->rpcAuthorName = mDrmVendor; info->rpcAuthorName = mDrmVendor; Loading Loading @@ -133,14 +138,6 @@ ScopedAStatus DrmRemotelyProvisionedComponent::generateCertificateRequestV2( return status; return status; } } std::vector<uint8_t> bcc; status = mDrm->getPropertyByteArray("bootCertificateChain", &bcc); if (!status.isOk()) { ALOGE("getPropertyByteArray bootCertificateChain failed. Details: [%s].", status.getDescription().c_str()); return status; } std::vector<uint8_t> deviceInfo; std::vector<uint8_t> deviceInfo; status = getDeviceInfo(&deviceInfo); status = getDeviceInfo(&deviceInfo); if (!status.isOk()) { if (!status.isOk()) { Loading @@ -167,7 +164,7 @@ ScopedAStatus DrmRemotelyProvisionedComponent::generateCertificateRequestV2( *out = cppbor::Array() *out = cppbor::Array() .add(1 /* version */) .add(1 /* version */) .add(cppbor::Map() /* UdsCerts */) .add(cppbor::Map() /* UdsCerts */) .add(cppbor::EncodedItem(std::move(bcc))) .add(cppbor::EncodedItem(mBcc)) .add(cppbor::EncodedItem(std::move(deviceSignedCsrPayload))) .add(cppbor::EncodedItem(std::move(deviceSignedCsrPayload))) .encode(); .encode(); return ScopedAStatus::ok(); return ScopedAStatus::ok(); Loading drm/libmediadrmrkp/src/DrmRkpAdapter.cpp +11 −2 Original line number Original line Diff line number Diff line Loading @@ -79,12 +79,21 @@ getDrmRemotelyProvisionedComponents() { return; return; } } std::string compName = "DrmRemotelyProvisionedComponent_" + std::string(instance); std::vector<uint8_t> bcc; status = mDrm->getPropertyByteArray("bootCertificateChain", &bcc); if (!status.isOk()) { ALOGE("mDrm->getPropertyByteArray(\"bootCertificateChain\") failed." "Detail: [%s].", status.getDescription().c_str()); return; } std::string compName(instance); auto comps = static_cast< auto comps = static_cast< std::map<std::string, std::shared_ptr<IRemotelyProvisionedComponent>>*>( std::map<std::string, std::shared_ptr<IRemotelyProvisionedComponent>>*>( context); context); (*comps)[compName] = ::ndk::SharedRefBase::make<DrmRemotelyProvisionedComponent>( (*comps)[compName] = ::ndk::SharedRefBase::make<DrmRemotelyProvisionedComponent>( mDrm, drmVendor, drmDesc); mDrm, drmVendor, drmDesc, bcc); }); }); return comps; return comps; } } Loading Loading
drm/libmediadrmrkp/include/DrmRemotelyProvisionedComponent.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -35,7 +35,7 @@ using ::ndk::ScopedAStatus; class DrmRemotelyProvisionedComponent : public BnRemotelyProvisionedComponent { class DrmRemotelyProvisionedComponent : public BnRemotelyProvisionedComponent { public: public: DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, std::string drmVendor, DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, std::string drmVendor, std::string drmDesc); std::string drmDesc, std::vector<uint8_t> bcc); ScopedAStatus getHardwareInfo(RpcHardwareInfo* info) override; ScopedAStatus getHardwareInfo(RpcHardwareInfo* info) override; ScopedAStatus generateEcdsaP256KeyPair(bool testMode, MacedPublicKey* macedPublicKey, ScopedAStatus generateEcdsaP256KeyPair(bool testMode, MacedPublicKey* macedPublicKey, Loading @@ -59,6 +59,7 @@ class DrmRemotelyProvisionedComponent : public BnRemotelyProvisionedComponent { std::shared_ptr<IDrmPlugin> mDrm; std::shared_ptr<IDrmPlugin> mDrm; std::string mDrmVendor; std::string mDrmVendor; std::string mDrmDesc; std::string mDrmDesc; std::vector<uint8_t> mBcc; }; }; } // namespace android::mediadrm } // namespace android::mediadrm Loading
drm/libmediadrmrkp/src/DrmRemotelyProvisionedComponent.cpp +8 −11 Original line number Original line Diff line number Diff line Loading @@ -27,8 +27,13 @@ namespace android::mediadrm { namespace android::mediadrm { DrmRemotelyProvisionedComponent::DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, DrmRemotelyProvisionedComponent::DrmRemotelyProvisionedComponent(std::shared_ptr<IDrmPlugin> drm, std::string drmVendor, std::string drmVendor, std::string drmDesc) std::string drmDesc, : mDrm(std::move(drm)), mDrmVendor(std::move(drmVendor)), mDrmDesc(std::move(drmDesc)) {} std::vector<uint8_t> bcc) : mDrm(std::move(drm)), mDrmVendor(std::move(drmVendor)), mDrmDesc(std::move(drmDesc)), mBcc(std::move(bcc)) {} ScopedAStatus DrmRemotelyProvisionedComponent::getHardwareInfo(RpcHardwareInfo* info) { ScopedAStatus DrmRemotelyProvisionedComponent::getHardwareInfo(RpcHardwareInfo* info) { info->versionNumber = 3; info->versionNumber = 3; info->rpcAuthorName = mDrmVendor; info->rpcAuthorName = mDrmVendor; Loading Loading @@ -133,14 +138,6 @@ ScopedAStatus DrmRemotelyProvisionedComponent::generateCertificateRequestV2( return status; return status; } } std::vector<uint8_t> bcc; status = mDrm->getPropertyByteArray("bootCertificateChain", &bcc); if (!status.isOk()) { ALOGE("getPropertyByteArray bootCertificateChain failed. Details: [%s].", status.getDescription().c_str()); return status; } std::vector<uint8_t> deviceInfo; std::vector<uint8_t> deviceInfo; status = getDeviceInfo(&deviceInfo); status = getDeviceInfo(&deviceInfo); if (!status.isOk()) { if (!status.isOk()) { Loading @@ -167,7 +164,7 @@ ScopedAStatus DrmRemotelyProvisionedComponent::generateCertificateRequestV2( *out = cppbor::Array() *out = cppbor::Array() .add(1 /* version */) .add(1 /* version */) .add(cppbor::Map() /* UdsCerts */) .add(cppbor::Map() /* UdsCerts */) .add(cppbor::EncodedItem(std::move(bcc))) .add(cppbor::EncodedItem(mBcc)) .add(cppbor::EncodedItem(std::move(deviceSignedCsrPayload))) .add(cppbor::EncodedItem(std::move(deviceSignedCsrPayload))) .encode(); .encode(); return ScopedAStatus::ok(); return ScopedAStatus::ok(); Loading
drm/libmediadrmrkp/src/DrmRkpAdapter.cpp +11 −2 Original line number Original line Diff line number Diff line Loading @@ -79,12 +79,21 @@ getDrmRemotelyProvisionedComponents() { return; return; } } std::string compName = "DrmRemotelyProvisionedComponent_" + std::string(instance); std::vector<uint8_t> bcc; status = mDrm->getPropertyByteArray("bootCertificateChain", &bcc); if (!status.isOk()) { ALOGE("mDrm->getPropertyByteArray(\"bootCertificateChain\") failed." "Detail: [%s].", status.getDescription().c_str()); return; } std::string compName(instance); auto comps = static_cast< auto comps = static_cast< std::map<std::string, std::shared_ptr<IRemotelyProvisionedComponent>>*>( std::map<std::string, std::shared_ptr<IRemotelyProvisionedComponent>>*>( context); context); (*comps)[compName] = ::ndk::SharedRefBase::make<DrmRemotelyProvisionedComponent>( (*comps)[compName] = ::ndk::SharedRefBase::make<DrmRemotelyProvisionedComponent>( mDrm, drmVendor, drmDesc); mDrm, drmVendor, drmDesc, bcc); }); }); return comps; return comps; } } Loading