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