mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 22:45:19 +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)
|
||||
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)
|
||||
@@ -163,8 +163,8 @@ extension PeerID {
|
||||
|
||||
/// Full Noise key (exact 64-hex) as Data
|
||||
var noiseKey: Data? {
|
||||
guard id.count == Constants.maxIDLength else { return nil }
|
||||
return Data(hexString: id)
|
||||
guard bare.count == Constants.maxIDLength else { return nil }
|
||||
return Data(hexString: bare)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -206,6 +206,18 @@ final class PeerIDTests: XCTestCase {
|
||||
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() {
|
||||
let peerID = PeerID(str: "some_random_key")
|
||||
let short = peerID.toShort()
|
||||
@@ -340,6 +352,10 @@ final class PeerIDTests: XCTestCase {
|
||||
XCTAssertTrue(peerID.isNoiseKeyHex)
|
||||
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 badPeerID = PeerID(str: bad)
|
||||
XCTAssertFalse(badPeerID.isNoiseKeyHex)
|
||||
|
||||
Reference in New Issue
Block a user