我正在编写一个需要在内存中处理私钥的快速应用程序.由于这些对象的敏感性,当对象被释放时,需要清除密钥(也称为全零),并且内存不能被分页到磁盘(通常使用mlock()完成).
在Objective-C中,您可以提供自定义CFAllocator对象,该对象允许您使用自己的函数来分配/释放/重新分配对象使用的内存.
因此,一种解决方案是在objective-c中实现"SecureData"对象,该对象使用自定义CFAllocator(也在objective-c中)内部创建NSMutableData对象.
但是,有没有办法为纯swift对象提供自己的自定义内存分配函数(例如,struct或[UInt8])?或者是否有更好的"适当"方式在swift中实现这样的安全内存?
我看到的东西很奇怪,说实话,我很难过.
mac附带的vim版本已过时(7.3而不是7.4).我正在尝试从自制软件安装vim,我想使用那个而不是默认的苹果版本.
我跑了" brew install vim
".它安装正确/usr/local/bin/vim
.都好.
当我运行" which vim
"时,它会打印" /usr/local/bin/vim
".苹果版的vim安装在/usr/bin/vim
.所以哪个命令告诉我我正在使用自制的vim版本.
但是,当我实际运行vim时,它仍然运行Apple版本
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 9 2015 23:58:42)
Compiled by root@apple.com
...
Run Code Online (Sandbox Code Playgroud)
如果我明确地运行自制软件版本,我会看到:
$ /usr/local/bin/vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 23 2015 18:16:35)
MacOS X (unix) version
Included patches: 1-898
Compiled by Homebrew
...
Run Code Online (Sandbox Code Playgroud)
我甚至尝试移动/usr/bin/vim
到/usr/bin/vim73
尝试使用自制版本给力.但是,当我这样做时,这是我在尝试运行vim时看到的:
$ vim --version
-bash: /usr/bin/vim: No such file or …
Run Code Online (Sandbox Code Playgroud) 如何轻松配置嵌入式tomcat服务器以将所有http流量重定向到https?我在一个弹性负载均衡器后面的ec2实例上运行Spring Boot.我已经将ELB配置为为我处理ssl(这很棒)并且它将X-FORWARDED-PROTO标头设置为"https".我想检测何时未设置,并重定向用户以强制他们使用https(如果尚未使用).
到目前为止,我已经尝试将以下内容添加到我的application.properties文件中,但没有运气:
server.tomcat.protocol-header=x-forwarded-proto
security.require-ssl=true
Run Code Online (Sandbox Code Playgroud) 我与Umbrella标题有命名冲突.我的框架名称是"SecureData",但我希望在这个框架中有一个名为"SecureData"的objective-c类.
问题是伞标题必须被称为"SecureData.h",我无法弄清楚如何在xcode设置中为伞标题指定不同的名称.这是可能的,还是我只需要提出一个不同的名字?
我正在尝试在swift中进行简单的DNS查找.到目前为止,这是我的代码:
let hostRef = CFHostCreateWithName(kCFAllocatorDefault, "google.com").takeRetainedValue()
var resolved = CFHostStartInfoResolution(hostRef, CFHostInfoType.Addresses, nil)
let addresses = CFHostGetAddressing(hostRef, &resolved).takeRetainedValue() as NSArray
Run Code Online (Sandbox Code Playgroud)
此时,"地址"NSArray中的每个元素都是一个包装sockaddr结构的CFDataRef对象.
由于CFDataRef可以免费桥接到NSData,我可以像这样循环遍历它们:
for address: AnyObject in addresses {
println(address) // address is of type NSData.
}
Run Code Online (Sandbox Code Playgroud)
到目前为止这么好(我想).当我在单元测试中运行时,这会打印出有效的数据.这是我陷入困境的地方.对于我的生活,我无法弄清楚如何将NSData对象中的字节转换为sockaddr结构.
如何将address.bytes(类型为COpaquePointer?)转换为ac结构?任何帮助赞赏.我正试图弄清楚我的头撞墙.
我特别考虑在Security框架中使用SecKeyGeneratePair()方法并在params字典中指定[kSecAttrKeyType:kSecAttrKeyTypeEC].
但我无法找到Apple文档中使用的EC曲线.
有没有办法指定使用什么曲线,还是应该导入openssl?
ios ×4
macos ×3
swift ×2
amazon-ec2 ×1
homebrew ×1
osx-yosemite ×1
path ×1
security ×1
spring ×1
spring-boot ×1
vim ×1
xcode ×1