小编Ara*_*nSG的帖子

Bouncy Castle:从signerInfos中删除算法保护属性

我正在升级用 Java 6 编写的系统,使用 Bouncy Castle 1.43,它用于生成 CMS。新系统使用Java 8和Bouncy Castle 1.58。

我已经使用两者生成了 CMS,并成功地使用 openssl 验证了它们,不幸的是,接收 CMS 的第三方拒绝了来自新系统的 CMS。我强烈怀疑其背后的原因是“加密消息语法(CMS)算法保护属性”(OID:1.2.840.113549.1.9.52),它被添加为signerInfos->signedAttrs的一部分:

object: undefined (1.2.840.113549.1.9.52)
value.set:
              SEQUENCE:
    0:d=0  hl=2 l=  30 cons: SEQUENCE          
    2:d=1  hl=2 l=  13 cons:  SEQUENCE          
    4:d=2  hl=2 l=   9 prim:   OBJECT            :sha512
   15:d=2  hl=2 l=   0 prim:   NULL              
   17:d=1  hl=2 l=  13 cons:  cont [ 1 ]        
   19:d=2  hl=2 l=   9 prim:   OBJECT            :sha512WithRSAEncryption
   30:d=2  hl=2 l=   0 prim:   NULL
Run Code Online (Sandbox Code Playgroud)

这是我能看到的新旧 CMS 之间唯一的显着差异。我尝试使用 setSignedAttributeGenerator() 设置属性表,但是即使未设置算法保护,也会添加此属性。有没有办法在不深入 ASN1 并手动执行的情况下删除它?

我的 CMS 是这样创建的: …

java bouncycastle java-8

5
推荐指数
1
解决办法
716
查看次数

带有 gradle 的 Java 11:必须指定一个绝对路径,但它是 ${tools.jar}

我们正在使用 jaxb 的项目从 Java 8 迁移到 11。由于它已从 JDK 中删除,因此必须单独包含,这是我通过 gradle 配置完成的:

compile("javax.xml.bind:jaxb-api:2.2.11")
compile("com.sun.xml.bind:jaxb-core:2.2.11")
compile("com.sun.xml.bind:jaxb-impl:2.2.11")
Run Code Online (Sandbox Code Playgroud)

我能够运行该项目,但是 compileJava gradle 作业会引发错误:

Errors occurred while build effective model from C:\Users\.\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-core\2.2.11\db0f76866c6b1e50084e03ee8cf9ce6b19becdb3\jaxb-core-2.2.11.pom:
'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-core:2.2.11
Errors occurred while build effective model from C:\Users\.\.gradle\caches\modules-2\files-2.1\com.sun.xml.bind\jaxb-impl\2.2.11\2d4b554997fd01d1a2233b1529b22fc9ecc0cf5c\jaxb-impl-2.2.11.pom:
'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} in com.sun.xml.bind:jaxb-impl:2.2.11
Run Code Online (Sandbox Code Playgroud)

作业完成并创建了一个 jar,但是在生产服务器上运行时,它会因以下错误而停止:

java.lang.NoClassDefFoundError: javax/xml/bind/Unmarshaller$Listener
Run Code Online (Sandbox Code Playgroud)

我正在使用 Spring Boot v1.5.6 和 gradle 4.8.1

jaxb gradle build.gradle java-11

3
推荐指数
1
解决办法
6612
查看次数

如何在每次加载新页面时为UIWebView应用添加"加载"屏幕?

我有一个适用于标签和webview的应用程序.我已经设置了每次选中标签栏上的项目时刷新分配给选项卡的页面.我现在的问题是加载页面需要一些时间,而且无法确定显示的页面是旧页面还是刷新页面.

我想要做的是添加一个"加载"屏幕(一个简单的图像),它将显示,直到加载刷新的页面.这是我在每个标签页面上运行的功能:

- (void) goToPage:(NSString *)sid
{
    NSString *newURL = [NSString stringWithFormat:@"%@/mykingdom.php?sid=%@", appURL, sid];

    [secondView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:newURL]]];
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

iphone uiwebview uitabbar

2
推荐指数
1
解决办法
2725
查看次数