如何使用PowerShell将snk转换为pfx?

时间:2018-03-22 15:49:23

标签: c# powershell pfx snk

这个答案here给出了一种使用powershell将pfx转换为snk的方法(包裹var heartRateSpec = { service: '180d', measurement: '2a37' }; var app = { initialize: function() { this.bindEvents(); }, bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); }, onDeviceReady: function() { app.scan(); }, scan: function() { app.status("Scanning for Heart Rate Monitor"); var foundHeartRateMonitor = false; function onScan(peripheral) { // this is demo code, assume there is only one heart rate monitor console.log("Found " + JSON.stringify(peripheral)); foundHeartRateMonitor = true; ble.connect(peripheral.id, app.onConnect, app.onDisconnect); } function scanFailure(reason) { alert("BLE Scan Failed"); } ble.scan([heartRateSpec.service], 5, onScan, scanFailure); setTimeout(function() { if (!foundHeartRateMonitor) { app.status("Did not find a heart rate monitor."); } }, 5000); }, onConnect: function(peripheral) { app.status("Connected to " + peripheral.id); ble.startNotification(peripheral.id, heartRateSpec.service, heartRateSpec.measurement, app.onData, app.onError); }, onDisconnect: function(reason) { alert("Disconnectedz " + reason); beatsPerMinute.innerHTML = "..."; app.status("Disconnected"); }, onData: function(buffer) { var data = new Uint16Array(buffer); if (heartRate.hasStarted() == false) { heartRate.beginReading(Date.now()); } else { var rrIntervals = data.slice(1); for (i=0; i<rrIntervals.length; i++) { rrInterval = rrIntervals[i]; heartRate.addReading(rrInterval); } } }, onError: function(reason) { alert("There was an error " + reason); }, status: function(message) { console.log(message); statusDiv.innerHTML = message; } }; app.initialize(); 方法)。

如何执行相反的操作,将System.Security.Cryptography文件转换为.snk?我可以使用.pfx阅读.snk文件,并以某种方式使用Get-Content来获取ImportCspBlob对象,但我不知道:

  1. 如何实例化X509Certificate2以获取该证书对象
  2. 如何从该对象导出ImportCspBlob
  3. 为了它的价值,我尝试实例化.pfx,然后运行X509Certificate2,但构造函数失败了:

    ImportCspBlob

    编辑:

    @TheIncorrigible指出了构造函数问题,现在已经修复了。主要问题仍然存在。

    我希望空构造函数能够正常工作。

    更新:

    我不再需要这个问题。事实证明,{em>不是$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(); At line:1 char:83 + ... ect System.Security.Cryptography.X509Certificates.X509Certificate2(); + ~ An expression was expected after '('. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : ExpectedExpression 文件中的公私密钥对,而是一些基本的对称密钥材料,密码加密。不过,我会留下这个问题,以防答案对其他人有用。

0 个答案:

没有答案