cwv_x509_certificate.mm 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #import "ios/web_view/public/cwv_x509_certificate.h"
  5. #import "ios/web_view/internal/cwv_x509_certificate_internal.h"
  6. #include "base/memory/scoped_refptr.h"
  7. #include "base/strings/sys_string_conversions.h"
  8. #include "base/time/time.h"
  9. #include "net/cert/x509_certificate.h"
  10. #if !defined(__has_feature) || !__has_feature(objc_arc)
  11. #error "This file requires ARC support."
  12. #endif
  13. @implementation CWVX509Certificate {
  14. scoped_refptr<net::X509Certificate> _internalCertificate;
  15. }
  16. - (instancetype)initWithInternalCertificate:
  17. (scoped_refptr<net::X509Certificate>)internalCertificate {
  18. DCHECK(internalCertificate);
  19. self = [super init];
  20. if (self) {
  21. _internalCertificate = internalCertificate;
  22. }
  23. return self;
  24. }
  25. - (NSString*)issuerDisplayName {
  26. const net::CertPrincipal& issuer = _internalCertificate->issuer();
  27. return base::SysUTF8ToNSString(issuer.GetDisplayName());
  28. }
  29. - (NSDate*)validExpiry {
  30. const base::Time& valid_expiry = _internalCertificate->valid_expiry();
  31. return valid_expiry.ToNSDate();
  32. }
  33. @end