Adds flag to enable AES_GCM from the Java API.

This changeset allows Java API users to enable or disable AES_GCM from the
PeerConnectionFactory.

Bug: chromium:713701
Change-Id: I8798e4eeb6907f8e16a646bfb8a20db510f960c8
Reviewed-on: https://webrtc-review.googlesource.com/89260
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24030}
diff --git a/sdk/android/api/org/webrtc/PeerConnectionFactory.java b/sdk/android/api/org/webrtc/PeerConnectionFactory.java
index d083de2..e4e881f 100644
--- a/sdk/android/api/org/webrtc/PeerConnectionFactory.java
+++ b/sdk/android/api/org/webrtc/PeerConnectionFactory.java
@@ -134,6 +134,7 @@
     public boolean disableEncryption;
     public boolean disableNetworkMonitor;
     public boolean enableAes128Sha1_32CryptoCipher;
+    public boolean enableGcmCryptoSuites;
 
     @CalledByNative("Options")
     int getNetworkIgnoreMask() {
@@ -154,6 +155,11 @@
     boolean getEnableAes128Sha1_32CryptoCipher() {
       return enableAes128Sha1_32CryptoCipher;
     }
+
+    @CalledByNative("Options")
+    boolean getEnableGcmCryptoSuites() {
+      return enableGcmCryptoSuites;
+    }
   }
 
   public static class Builder {
diff --git a/sdk/android/src/jni/pc/peerconnectionfactory.cc b/sdk/android/src/jni/pc/peerconnectionfactory.cc
index 5a0e783..889593e 100644
--- a/sdk/android/src/jni/pc/peerconnectionfactory.cc
+++ b/sdk/android/src/jni/pc/peerconnectionfactory.cc
@@ -54,6 +54,8 @@
       Java_Options_getDisableNetworkMonitor(jni, options);
   bool enable_aes128_sha1_32_crypto_cipher =
       Java_Options_getEnableAes128Sha1_32CryptoCipher(jni, options);
+  bool enable_gcm_crypto_suites =
+      Java_Options_getEnableGcmCryptoSuites(jni, options);
 
   PeerConnectionFactoryInterface::Options native_options;
 
@@ -65,6 +67,8 @@
 
   native_options.crypto_options.enable_aes128_sha1_32_crypto_cipher =
       enable_aes128_sha1_32_crypto_cipher;
+  native_options.crypto_options.enable_gcm_crypto_suites =
+      enable_gcm_crypto_suites;
   return native_options;
 }
 }  // namespace