mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 23:45:18 +00:00
PeerID 2/n: Count and hex conversion done with bare (#705)
This commit is contained in:
@@ -153,7 +153,7 @@ extension PeerID {
|
|||||||
|
|
||||||
/// Short routing IDs (exact 16-hex)
|
/// Short routing IDs (exact 16-hex)
|
||||||
var isShort: Bool {
|
var isShort: Bool {
|
||||||
id.count == Constants.hexIDLength && Data(hexString: id) != nil
|
bare.count == Constants.hexIDLength && Data(hexString: bare) != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Full Noise key hex (exact 64-hex)
|
/// Full Noise key hex (exact 64-hex)
|
||||||
@@ -163,8 +163,8 @@ extension PeerID {
|
|||||||
|
|
||||||
/// Full Noise key (exact 64-hex) as Data
|
/// Full Noise key (exact 64-hex) as Data
|
||||||
var noiseKey: Data? {
|
var noiseKey: Data? {
|
||||||
guard id.count == Constants.maxIDLength else { return nil }
|
guard bare.count == Constants.maxIDLength else { return nil }
|
||||||
return Data(hexString: id)
|
return Data(hexString: bare)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -206,6 +206,18 @@ final class PeerIDTests: XCTestCase {
|
|||||||
XCTAssertEqual(short.prefix, .empty)
|
XCTAssertEqual(short.prefix, .empty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func test_toShort_whenNoiseKeyExists_withNoisePrefix() {
|
||||||
|
let peerID = PeerID(str: "noise:" + hex64)
|
||||||
|
let short = peerID.toShort()
|
||||||
|
|
||||||
|
// `toShort()` should derive 16-hex peerID
|
||||||
|
let expected = Data(hexString: hex64)!.sha256Fingerprint().prefix(16)
|
||||||
|
|
||||||
|
XCTAssertEqual(short.bare, String(expected))
|
||||||
|
XCTAssertEqual(short.prefix, .empty)
|
||||||
|
XCTAssertEqual(peerID.prefix, .noise)
|
||||||
|
}
|
||||||
|
|
||||||
func test_toShort_whenNoNoiseKey() {
|
func test_toShort_whenNoNoiseKey() {
|
||||||
let peerID = PeerID(str: "some_random_key")
|
let peerID = PeerID(str: "some_random_key")
|
||||||
let short = peerID.toShort()
|
let short = peerID.toShort()
|
||||||
@@ -340,6 +352,10 @@ final class PeerIDTests: XCTestCase {
|
|||||||
XCTAssertTrue(peerID.isNoiseKeyHex)
|
XCTAssertTrue(peerID.isNoiseKeyHex)
|
||||||
XCTAssertNotNil(peerID.noiseKey)
|
XCTAssertNotNil(peerID.noiseKey)
|
||||||
|
|
||||||
|
let prefixedPeerID = PeerID(str: "noise:" + hex64)
|
||||||
|
XCTAssertTrue(prefixedPeerID.isNoiseKeyHex)
|
||||||
|
XCTAssertNotNil(prefixedPeerID.noiseKey)
|
||||||
|
|
||||||
let bad = String(repeating: "z", count: 64) // invalid hex
|
let bad = String(repeating: "z", count: 64) // invalid hex
|
||||||
let badPeerID = PeerID(str: bad)
|
let badPeerID = PeerID(str: bad)
|
||||||
XCTAssertFalse(badPeerID.isNoiseKeyHex)
|
XCTAssertFalse(badPeerID.isNoiseKeyHex)
|
||||||
|
|||||||
Reference in New Issue
Block a user