|  | /* | 
|  | *  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); | 
|  | } |