我有一个在iOS上运行的简单程序HelloWorld.相同的代码已经运行了很长时间.最近,我注意到当程序在我的Macbook上连接到XCode 9的ipad上运行时,我得到了以下BoringSSL错误.我在模拟器中运行程序时没有看到此错误.iOS是11.2.Xcode是9.2.
我的代码没有引用BoringSSL.但是,它确实使用NSMutableURLRequest来对服务器进行https调用.该调用工作正常,除了BoringSSL消息外,一切似乎都能正常工作.
有没有办法可以调试消息出现的原因?HellowWorld [466:85961],这2个数字是什么意思?
有谁知道这个消息意味着什么以及如何避免它?
2017-12-13 15:41:13.486047-0500 HellowWorld[466:85961] [BoringSSL] Function boringssl_session_errorlog: line 2871 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert
2017-12-13 15:41:13.486363-0500 HellowWorld[466:85961] [BoringSSL] Function boringssl_session_errorlog: line 2871 [boringssl_session_read] SSL_ERROR_ZERO_RETURN(6): operation failed because the connection was cleanly shut down with a close_notify alert
Run Code Online (Sandbox Code Playgroud)
我得到一些SSL Errors(这导致我的项目停止/挂起而没有崩溃,因为我DispatchGroup等待请求),我不知道它们是如何引起的,它们是什么,或者该怎么做.
我看过无数的网页大概这个问题,但目前还没有太多的文件或具有相同问题的人.我试过更改info.plist,但似乎没有帮助.两者都是plist这样的:( accounts.spotify.com是访问令牌请求的URL的域)
当我向服务器发出请求时,我可以看到我的代码失败了.(这是我的框架).如前所述,我DispatchGroup等待这个请求但代码停止了.
self.currentToken = try self.spotifyRequest("https://accounts.spotify.com/api/token", method: .post, parameters: parameters)
Run Code Online (Sandbox Code Playgroud)
我的要求方法:
private func spotifyRequest(_ url: URLConvertible, method: HTTPMethod, parameters: Parameters? = nil, headers: HTTPHeaders? = nil) throws -> JSONStandard {
// Create a dispatch group to handle threads
let group = DispatchGroup()
group.enter()
// Status of the request (starts as nil)
var status: JSONStandard?
DispatchQueue.global(qos: .userInitiated).async {
Alamofire.request(url, method: method, parameters: parameters, headers: headers).responseJSON(completionHandler: …Run Code Online (Sandbox Code Playgroud) 从 API 链接获取 JSON 数据时,我刚刚收到错误“[boringssl] Boringssl_metrics_log_metric_block_invoke(144) 无法记录指标”。在它工作之前,我刚刚更新了 Xcode 版本 13.1。我检查了每个论坛,但找不到解决方法。以前有人遇到过同样的问题,请帮助我。谢谢。
func parse() {
let jsonUrlString = "https://api.tiki.vn/shopping-trend/api/trendings/hub?cursor=0&limit=20"
guard let url = URL(string: jsonUrlString)
else {
return
}
URLSession.shared.dataTask(with: url) { [self]
data, response, err in
if err != nil {
print(err as Any)
return
}
do {
let result = try JSONDecoder().decode(Data.self, from: data!)
DispatchQueue.main.async {
self.items = (result.data?.data)!
print(items)
}
} catch {
print("Error")
}
}
.resume()
}
Run Code Online (Sandbox Code Playgroud) 当前,我们的Objective-C应用程序有两个用例,它们连接到node.js服务器。第一种情况是将我们的应用程序托管在客户端服务器上,我们直接在node.js中拥有SSL证书。第二个是我们的云托管解决方案,其中我们将所有内容都路由到具有SSL证书而不是in节点的Azure Web应用程序防火墙。
我的问题或困惑是,当我们连接到azure服务器时,平板电脑应用程序会记录所有这些BoringSSL日志和TIC读取状态日志:
[BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C12.1:2][0x101843dd0] get output frames failed, state 8196
TIC Read Status [12:0x0]: 1:57
TIC Read Status [12:0x0]: 1:57
Run Code Online (Sandbox Code Playgroud)
但是,当我们连接到不使用Azure服务的客户端服务器时,我们看不到这些日志中的任何一个,但是它们都在使用SSL。
我们没有看到任何请求失败的任何问题,但是我们想知道这是否可能导致几个小时的使用过程中性能下降。
平板电脑上的Objective-C代码或配置文件中是否有某些东西触发了这些日志,或者Web应用程序防火墙中有这东西?
这些日志的发生频率很高,以至于很难跟踪和调试与实际问题相关的日志。
我正在开发一个 Android 应用程序,并希望在 TLS/SSL ClientHello 握手中添加一个自定义扩展。OpenSSL 和 BoringSSL 都支持添加自定义扩展所需的功能和回调,但不幸的是,Android JSSE 提供程序似乎没有公开此功能。
我相信我至少有两个选择:
一种方法是修改 conscrypt,添加对自定义扩展的支持,并在我的应用程序中捆绑库(本机 .so + .jar)。
找到另一个支持自定义扩展的 JSEE 提供程序,或者比 conscrypt 更容易修改和捆绑。
Rgearding (1),我找不到关于如何将 conscrypt 与特定应用程序捆绑在一起的任何好的说明,并且第一次尝试根据源代码构建并在我的应用程序中手动添加库不起作用(我无法导入任何内容来自conscrypt)。即使这个问题得到解决,也很可能发生类冲突。
为我的应用程序添加支持的最佳方式是什么?
谢谢。
当我尝试登录或在Firebase中注册时,我收到错误消息
2018-09-20 10:59:15.502959+0300 app[1980:18396] TIC Read Status [3:0x0]: 1:57
2018-09-20 10:59:15.503055+0300 app[1980:18396] TIC Read Status [3:0x0]: 1:57
2018-09-20 11:00:45.911678+0300 app[1980:18396] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C2.1:2][0x7fb1b5810f40] get output frames failed, state 8196
2018-09-20 11:00:45.911833+0300 app[1980:18396] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C2.1:2][0x7fb1b5810f40] get output frames failed, state 8196
Run Code Online (Sandbox Code Playgroud)
由于此错误,以下代码块不起作用.
Auth.auth().createUser(withEmail: emailTxt.text, password: passwordTxt.text) { (result, error) in
if let _eror = error {
print(_eror.localizedDescription )
} else {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
我使用新的Xcode 10,swift 4.2.
我最近开始在设备中看到此错误。
java.security.InvalidKeyException: Only SecretKey is supported
at com.android.org.conscrypt.OpenSSLCipher.checkAndSetEncodedKey(OpenSSLCipher.java:436)
at com.android.org.conscrypt.OpenSSLCipher.engineInit(OpenSSLCipher.java:273)
at javax.crypto.Cipher.tryTransformWithProvider(Cipher.java:2664)
at javax.crypto.Cipher.tryCombinations(Cipher.java:2575)
at javax.crypto.Cipher$SpiAndProviderUpdater.updateAndGetSpiAndProvider(Cipher.java:2480)
at javax.crypto.Cipher.chooseProvider(Cipher.java:567)
at javax.crypto.Cipher.init(Cipher.java:975)
at javax.crypto.Cipher.init(Cipher.java:910)
Run Code Online (Sandbox Code Playgroud)
if (!(key instanceof SecretKey)) {
throw new InvalidKeyException("Only SecretKey is supported");
}
Run Code Online (Sandbox Code Playgroud)
我总是这样从商店获取我的SecretKey:
SecretKey key = (SecretKey) keyStore.getKey(KEY_NAME, null);
Run Code Online (Sandbox Code Playgroud)
知道发生了什么吗?
我正在尝试从具有WebView库的Android应用程序访问网站,所以我有:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
myWebView.setWebViewClient(
new SSLTolerentWebViewClient()
);
myWebView.loadUrl("https://www.mywebsite.ro");
}
}
class SSLTolerentWebViewClient extends WebViewClient {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
if (error.toString() == "piglet")
handler.cancel();
else
handler.proceed(); // Ignore SSL certificate errors
}
}
Run Code Online (Sandbox Code Playgroud)
在调试中,我有:
D / …
安装Firebase(Cloud Firestore)后,我通常会获得大量的控制台日志,通常属于BoringSSL,例如:
2018-08-27 13:49:03.747112 + 0100 VM [25611:371248] [BoringSSL] boringssl_session_errorlog(224)[C2.1:2] [0x7f9570c142d0] [boringssl_session_read] SSL_ERROR_SSL(1):库内操作失败
有没有办法避免这些(或任何)外部框架的日志?
谢谢.
我有客户希望我们的应用程序使用FIPS 140-2 验证的加密。该应用程序使用Okhttp 并执行一些 HTTPS 请求。AFAIK Android 使用 OpenSSL C 库并使用 java 包装器 javax/net/ssl。
问题:
如何让安卓应用程序 FIPS 140 -2 投诉?
堆栈(OS)级别的android是否应该使用符合FIPS的OpenSSL,因此所有应用程序都是默认符合FIPS 140 -2的?
或者我们的应用程序应该使用 FIPS 140-2 验证的密码学并使 java javax/net/ssl 使用它?可行的?
是否有可以插入 OKhttp 的 FIPS 140-2 JCE 库?
谢谢