| /* |
| * Copyright 2018 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| package org.webrtc; |
| |
| import org.webrtc.PeerConnection; |
| |
| /** |
| * Easily storable/serializable version of a native C++ RTCCertificatePEM. |
| */ |
| public class RtcCertificatePem { |
| /** PEM string representation of the private key. */ |
| public final String privateKey; |
| /** PEM string representation of the certificate. */ |
| public final String certificate; |
| /** Default expiration time of 30 days. */ |
| private static final long DEFAULT_EXPIRY = 60 * 60 * 24 * 30; |
| |
| /** Instantiate an RtcCertificatePem object from stored strings. */ |
| @CalledByNative |
| public RtcCertificatePem(String privateKey, String certificate) { |
| this.privateKey = privateKey; |
| this.certificate = certificate; |
| } |
| |
| @CalledByNative |
| String getPrivateKey() { |
| return privateKey; |
| } |
| |
| @CalledByNative |
| String getCertificate() { |
| return certificate; |
| } |
| |
| /** |
| * Generate a new RtcCertificatePem with the default settings of KeyType = ECDSA and |
| * expires = 30 days. |
| */ |
| public static RtcCertificatePem generateCertificate() { |
| return nativeGenerateCertificate(PeerConnection.KeyType.ECDSA, DEFAULT_EXPIRY); |
| } |
| |
| /** |
| * Generate a new RtcCertificatePem with a custom KeyType and the default setting of |
| * expires = 30 days. |
| */ |
| public static RtcCertificatePem generateCertificate(PeerConnection.KeyType keyType) { |
| return nativeGenerateCertificate(keyType, DEFAULT_EXPIRY); |
| } |
| |
| /** |
| * Generate a new RtcCertificatePem with a custom expires and the default setting of |
| * KeyType = ECDSA. |
| */ |
| public static RtcCertificatePem generateCertificate(long expires) { |
| return nativeGenerateCertificate(PeerConnection.KeyType.ECDSA, expires); |
| } |
| |
| /** Generate a new RtcCertificatePem with a custom KeyType and a custom expires. */ |
| public static RtcCertificatePem generateCertificate( |
| PeerConnection.KeyType keyType, long expires) { |
| return nativeGenerateCertificate(keyType, expires); |
| } |
| |
| private static native RtcCertificatePem nativeGenerateCertificate( |
| PeerConnection.KeyType keyType, long expires); |
| } |