Discussion:
mina-sshd git commit: Contribution: Add a security provider registrar for AndroidOpenSSL
l***@apache.org
2018-10-28 07:30:15 UTC
Permalink
Repository: mina-sshd
Updated Branches:
refs/heads/master 5c7cc7137 -> ec8ebfb6e


Contribution: Add a security provider registrar for AndroidOpenSSL


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/ec8ebfb6
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/ec8ebfb6
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/ec8ebfb6

Branch: refs/heads/master
Commit: ec8ebfb6e284e432b701068b13466b1a781f39ce
Parents: 5c7cc71
Author: wh0 <none>
Authored: Sun Oct 28 09:28:24 2018 +0200
Committer: Lyor Goldstein <***@apache.org>
Committed: Sun Oct 28 09:30:10 2018 +0200

----------------------------------------------------------------------
...AndroidOpenSSLSecurityProviderRegistrar.java | 57 ++++++++++++++++++++
1 file changed, 57 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/ec8ebfb6/sshd-contrib/src/main/java/org/apache/sshd/common/util/security/androidopenssl/AndroidOpenSSLSecurityProviderRegistrar.java
----------------------------------------------------------------------
diff --git a/sshd-contrib/src/main/java/org/apache/sshd/common/util/security/androidopenssl/AndroidOpenSSLSecurityProviderRegistrar.java b/sshd-contrib/src/main/java/org/apache/sshd/common/util/security/androidopenssl/AndroidOpenSSLSecurityProviderRegistrar.java
new file mode 100644
index 0000000..df11570
--- /dev/null
+++ b/sshd-contrib/src/main/java/org/apache/sshd/common/util/security/androidopenssl/AndroidOpenSSLSecurityProviderRegistrar.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sshd.common.util.security.androidopenssl;
+
+import java.security.Provider;
+import java.security.Security;
+
+import org.apache.sshd.common.util.security.AbstractSecurityProviderRegistrar;
+
+/**
+ * On Android 9, one cannot use the built in {@code Bouncy Castle} security provider
+ * because {@code Android} blocks attempts to use {@code Bouncy Castle} for operations
+ * that {@code AndroidOpenSSL} supports.
+ *
+ * @author <a href="mailto:***@mina.apache.org">Apache MINA SSHD Project</a>
+ * @see <a href="https://developer.android.com/guide/topics/security/cryptography#bc-algorithms">Bouncy Castle algorithms</a>
+ */
+public class AndroidOpenSSLSecurityProviderRegistrar extends AbstractSecurityProviderRegistrar {
+ public static final String NAME = "AndroidOpenSSL";
+
+ public AndroidOpenSSLSecurityProviderRegistrar() {
+ super(NAME);
+ }
+
+ @Override
+ public boolean isSupported() {
+ // Check that we are running on Android
+ // https://developer.android.com/reference/java/lang/System#getProperties()
+ return "The Android Project".equals(System.getProperty("java.specification.vendor"));
+ }
+
+ @Override
+ public String getDefaultSecurityEntitySupportValue(Class<?> entityType) {
+ return ALL_OPTIONS_VALUE;
+ }
+
+ @Override
+ public Provider getSecurityProvider() {
+ return Security.getProvider(NAME);
+ }
+}
\ No newline at end of file

Loading...