blob: 5ac8984d4aeeea044b1b91ff2439e68bfe38b731 [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
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
15NS_ASSUME_NONNULL_BEGIN
16
Mirko Bonadeie8d57242018-09-17 10:22:56 +020017RTC_OBJC_EXPORT
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020018@interface RTC_OBJC_TYPE (RTCCertificate) : NSObject <NSCopying>
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020019
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 */
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020040+ (nullable RTC_OBJC_TYPE(RTCCertificate) *)generateCertificateWithParams:(NSDictionary *)params;
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020041
42@end
43
44NS_ASSUME_NONNULL_END