GetCommissionerRootCertificateCommand.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright (c) 2023 Project CHIP Authors
  3. * All rights reserved.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. *
  17. */
  18. #pragma once
  19. #include "../common/CHIPCommand.h"
  20. #include "ToTLVCert.h"
  21. class GetCommissionerRootCertificateCommand : public CHIPCommand
  22. {
  23. public:
  24. GetCommissionerRootCertificateCommand(CredentialIssuerCommands * credIssuerCommands) :
  25. CHIPCommand("get-commissioner-root-certificate", credIssuerCommands,
  26. "Returns a base64-encoded RCAC prefixed with: 'base64:'")
  27. {}
  28. /////////// CHIPCommand Interface /////////
  29. CHIP_ERROR RunCommand() override
  30. {
  31. chip::ByteSpan span;
  32. ReturnErrorOnFailure(GetIdentityRootCertificate(GetIdentity(), span));
  33. std::string rcac;
  34. ReturnErrorOnFailure(ToTLVCert(span, rcac));
  35. ChipLogProgress(chipTool, "RCAC: %s", rcac.c_str());
  36. ReturnErrorOnFailure(RemoteDataModelLogger::LogGetCommissionerRootCertificate(rcac.c_str()));
  37. SetCommandExitStatus(CHIP_NO_ERROR);
  38. return CHIP_NO_ERROR;
  39. }
  40. chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(10); }
  41. };