1 /* 2 * Copyright 2018 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #import <Foundation/Foundation.h> 12 13 #import "RTCMacros.h" 14 15 NS_ASSUME_NONNULL_BEGIN 16 17 RTC_OBJC_EXPORT 18 @interface RTC_OBJC_TYPE (RTCCertificate) : NSObject <NSCopying> 19 20 /** Private key in PEM. */ 21 @property(nonatomic, readonly, copy) NSString *private_key; 22 23 /** Public key in an x509 cert encoded in PEM. */ 24 @property(nonatomic, readonly, copy) NSString *certificate; 25 26 /** 27 * Initialize an RTCCertificate with PEM strings for private_key and certificate. 28 */ 29 - (instancetype)initWithPrivateKey:(NSString *)private_key 30 certificate:(NSString *)certificate NS_DESIGNATED_INITIALIZER; 31 32 - (instancetype)init NS_UNAVAILABLE; 33 34 /** Generate a new certificate for 're' use. 35 * 36 * Optional dictionary of parameters. Defaults to KeyType ECDSA if none are 37 * provided. 38 * - name: "ECDSA" or "RSASSA-PKCS1-v1_5" 39 */ 40 + (nullable RTC_OBJC_TYPE(RTCCertificate) *)generateCertificateWithParams:(NSDictionary *)params; 41 42 @end 43 44 NS_ASSUME_NONNULL_END 45