- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 RSA 公钥加密包装器,它在桌面 Windows 和 Windows Embedded/POSReady 中运行良好。我需要将该系统移植到 Windows CE 5 和 Windows CE 3。在该系统的一部分中,我允许开发人员以多种编码导入各种加密对象,例如证书和 key 。最常用的编码是 Base64 编码的 PEM。在大多数版本的 Windows 上,很容易将编码转换为 Windows 调用 CryptDecodeObjectEx
所需的二进制 (DER) 格式:
bool MyClass::externalToBinary( const DATA_BLOB &in, DATA_BLOB &outDER )
{
DWORD flags;
// This call determines the format and how much memory is needed in outDER
if ( ::CryptStringToBinaryA( reinterpret_cast<char *>(in.pbData), in.cbData, CRYPT_STRING_ANY, NULL, &outDER.cbData, NULL, &flags ) == false &&
::CryptStringToBinaryA( reinterpret_cast<char *>(in.pbData), in.cbData, CRYPT_STRING_HEX_ANY, NULL, &outDER.cbData, NULL, &flags ) == false )
{
// Log errors here using ::GetLastError();
return false;
}
if ( ( outDER.pbData = new unsigned char[outDER.cbData] ) == NULL )
{
// Log errors here using ::GetLastError();
return false;
}
return ( ::CryptStringToBinaryA( reinterpret_cast<char *>(in.pbData), in.cbData, flags, outDER.pbData, &outDER.cbData, NULL, NULL ) != FALSE );
} // end externalToBinary
不幸的是,CryptStringToBinary
在 Windows CE 3 的 CryptoAPI 版本中不存在。虽然我可以取消对不太流行的编码(例如十六进制)的支持,但我真的不想在 API 的 CE 3 版本中删除对 PEM 编码的支持。
有没有人有可以在 Windows CE 3 上运行的 CryptStringToBinary
替代方案?使用此 API 的开发人员目前没有将 OpenSSL 作为依赖项,因此我不想为此添加它。
最佳答案
嗯 - PEM 只是 base64 编码的 DER。因此,如果这是您唯一需要转换的地方;我只是放弃了 API 的细节;删除任何空行或以“-”开头的行;和 base64 解码之间的任何东西。结果就是您要的 DER。 WindowsCE3 有一个 Encode/Decodeter type for Base64;如果出于某种原因您不想/不能使用它 - How do I base64 encode (decode) in C?或 http://www.adp-gmbh.ch/cpp/common/base64.html是相当琐碎的“原始”版本。
关于c++ - 在 Windows CE 3 上将 PEM 转换为 DER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626617/
我有 Windows CE 5.0 设备,它不支持任何硬件加速。 我正在寻找一些好的 2d 图形库来做以下事情。 我更喜欢 Compact .Net Framework 中的后端编程。 使用抗锯齿绘制
我有一个 POS 软件,需要为 windows CE 开发一个收集模块,以便在 Honeywell Dolphin 6100 设备上运行。 我需要开发一个在 Honeywell 6100 设备上运行的
我必须找出 Windows CE 4.0/5.0 设备上的内存泄漏问题。是否有任何工具可以向我显示所有进程信息,如内存、句柄数...以便我可以识别罪魁祸首进程。 有没有CE 4.0/5.0的内存泄漏检
我正在开发一个网站并且有一个 htaccess 规则如下:RewriteRule ^(ac|bc|cd)/(.*) $2?folder=$1 [L,QSA] 但是,我想在 domain.com 之后传
我是 CE 环境的新手,我想为在 CE(5 及更高版本)上运行的计算机(英特尔)创建应用程序。我到底需要什么才能开始,我要去哪里?我以前从未使用过 CE,但我确实有使用 C、C++、C# 和 Java
是否有等效于 isatty()在 Windows CE 上?换句话说,有没有办法在代码中检测 stdin/stdout/stderr 是否已被重定向? 最佳答案 你可以调用 GetStdIoPath(
我开发了一个基于媒体的应用程序,该应用程序在带有 Win CE 的设备上运行。我需要一个静音/取消静音按钮来控制应用程序音量。我已经使用 .Net 紧凑型框架开发了该应用程序。 最佳答案 我在 Win
我正在寻找WinCE的开发板,最好有以下接口(interface): VGA/DVI 屏幕 用于 kb/鼠标的 USB 以太网(10Mbit 就可以,100 会更好 ;-) ) 存储(例如:SD/MM
长期以来,您可以做到这一点 execute multiple statements with SQL CE .事实上我正在使用 SQL Server Compact Toolbox做到这一点。但是当我
我正在使用 CE 6.0 处理一个项目,我需要重建树。我的问题是我必须将树更新到 2009 年 5 月,这需要 2008 年汇总和以下 5 个月度更新,但我找不到它们(有 2009 年汇总和以下 20
甚至需要定期压缩 SQL CE 数据库吗?自动收缩就足够了吗?我们的平均数据库大小约为 100Mb,大用户达到 400-500Mb(但这种情况非常罕见)。如果我们必须手动压缩,我们如何判断何时应该压缩
我打算在一个小型但生产的网站中使用SQL CE 4.0,我想知道SQL CE 4.0可以处理多少负载: 并发连接数, 每个表的行数和 数据库的总大小。 最佳答案 可能对您有用的是Scott Guthr
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我不知道这段代码有什么问题,它现在给了我一天的错误: select row_number() over(order by s.title) as rowNumber, s.id from story
我希望能够在启动时检查损坏的数据库,然后以编程方式修复它。我可以 do that很容易。 我的问题是我想测试事情是否按我期望的方式工作。有谁知道故意破坏数据库的方法,以便我可以测试我的代码? 最佳答案
我正在尝试在 Windows CE 6 设备上配置 SMB 文件共享服务器。 我最初的尝试主要是使用桌面版本的 NK.exe。 当我启动时,SMB0: 作为 smbserver.dll 运行 我已经设
我接管了一个 Windows-CE 6.0 应用程序,我想将其移植到其他平台。它是一个相对简单、独立的 GUI 应用程序,使用嵌入式 C++ 4.0 版编写 我感兴趣的第一个目标是常规 Windows
我正在尝试使用 SQL Server Compact Edition 3.5 作为销售应用程序的数据库后端。将安装 3-4 个 Windows 窗体应用程序,所有这些应用程序(通过 LINQ2SQL)
我正在编写一个 wpf destop 应用程序,并且想使用 SQL Server CE 作为后端。我正在尝试想出一种进行有效数据分页的好方法。在 SQL Server Express 中,我可以执行以
由于谷歌没有提供我想知道的内容,我尝试询问 stackoverflow :) sql ce 3.5 数据库的最大并发连接数是多少? 谢谢 j. 最佳答案 我相信您正在寻找的信息是 SQL Server
我是一名优秀的程序员,十分优秀!