blob: 6b4ea4323a0b95bb2557761892de04c180569129 [file] [log] [blame]
Michael Iedemaccee56b2018-07-05 15:28:24 +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 <WebRTC/RTCMacros.h>
14
15NS_ASSUME_NONNULL_BEGIN
16
17RTC_EXPORT
18@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