(oid, Q)
| 278 | } |
| 279 | |
| 280 | function genOpenSSLECDSAPub(oid, Q) { |
| 281 | const asnWriter = new Ber.Writer(); |
| 282 | asnWriter.startSequence(); |
| 283 | // algorithm |
| 284 | asnWriter.startSequence(); |
| 285 | asnWriter.writeOID('1.2.840.10045.2.1'); // id-ecPublicKey |
| 286 | // algorithm parameters (namedCurve) |
| 287 | asnWriter.writeOID(oid); |
| 288 | asnWriter.endSequence(); |
| 289 | |
| 290 | // subjectPublicKey |
| 291 | asnWriter.startSequence(Ber.BitString); |
| 292 | asnWriter.writeByte(0x00); |
| 293 | // XXX: hack to write a raw buffer without a tag -- yuck |
| 294 | asnWriter._ensure(Q.length); |
| 295 | asnWriter._buf.set(Q, asnWriter._offset); |
| 296 | asnWriter._offset += Q.length; |
| 297 | // end hack |
| 298 | asnWriter.endSequence(); |
| 299 | asnWriter.endSequence(); |
| 300 | return makePEM('PUBLIC', asnWriter.buffer); |
| 301 | } |
| 302 | |
| 303 | function genOpenSSHECDSAPub(oid, Q) { |
| 304 | let curveName; |
no test coverage detected
searching dependent graphs…