blob: 50c1ca55a3ce97b492cc58f6245678f50dace17d [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
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020018@interface 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 RTCCertificate *)generateCertificateWithParams:(NSDictionary *)params;
41
42@end
43
44NS_ASSUME_NONNULL_END