mirror of
https://github.com/neon443/ShhShell.git
synced 2026-03-11 21:36:17 +00:00
YES asdkfghjaksdhfjgkjadhfg ASDFJASODJFSDJLFASDILFAH
PRIVKEYS CAN BE IMPORTED!!!! added extractField to help with extracting the correct number of bytes (using the length prefix)
This commit is contained in:
@@ -108,8 +108,7 @@ class KeyManager: ObservableObject {
|
|||||||
|
|
||||||
removeField(&dataBlob) //remove key type for pubkey str
|
removeField(&dataBlob) //remove key type for pubkey str
|
||||||
|
|
||||||
let pubkeyData = Data((dataBlob as NSData)[0..<Int((dataBlob as NSData)[3])])
|
let pubkeyData = extractField(&dataBlob) //extract pubkey field
|
||||||
removeField(&dataBlob) //remove pubkey field
|
|
||||||
|
|
||||||
dataBlob.removeFirst(4) //remove lenght header for the privkey data blob
|
dataBlob.removeFirst(4) //remove lenght header for the privkey data blob
|
||||||
|
|
||||||
@@ -120,15 +119,13 @@ class KeyManager: ObservableObject {
|
|||||||
removeField(&dataBlob) // remove pubkey type header
|
removeField(&dataBlob) // remove pubkey type header
|
||||||
removeField(&dataBlob) // remove pubkey
|
removeField(&dataBlob) // remove pubkey
|
||||||
|
|
||||||
let privatekeyData = Data((dataBlob as NSData)[0..<32])
|
var privatekeyData = extractField(&dataBlob) //extract privkey
|
||||||
dataBlob.removeFirst(4 + 32) //remove privkey
|
guard Data((privatekeyData as NSData)[32..<64]) == pubkeyData else {
|
||||||
|
|
||||||
guard (dataBlob as NSData).subdata(with: NSRange(0...31)) == pubkeyData else {
|
|
||||||
fatalError("pubkeys dont match")
|
fatalError("pubkeys dont match")
|
||||||
}
|
}
|
||||||
dataBlob.removeFirst(32) //remove pubkey
|
privatekeyData.removeLast(32) //remove pubkey from privkey
|
||||||
|
|
||||||
let comment = String(data: Data((dataBlob as NSData)[0..<Int((dataBlob as NSData)[3])]), encoding: .utf8)!
|
let comment = String(data: extractField(&dataBlob), encoding: .utf8)!
|
||||||
|
|
||||||
return Keypair(type: .ecdsa, name: comment, publicKey: pubkeyData, privateKey: privatekeyData)
|
return Keypair(type: .ecdsa, name: comment, publicKey: pubkeyData, privateKey: privatekeyData)
|
||||||
}
|
}
|
||||||
@@ -213,4 +210,12 @@ class KeyManager: ObservableObject {
|
|||||||
data.removeFirst(4)
|
data.removeFirst(4)
|
||||||
data.removeFirst(Int(length))
|
data.removeFirst(Int(length))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static func extractField(_ data: inout Data) -> Data {
|
||||||
|
let nsdata = data as NSData
|
||||||
|
let lenght = Int(nsdata[3])
|
||||||
|
let extracted = Data(nsdata[4..<(lenght+4)])
|
||||||
|
data.removeFirst(4 + lenght)
|
||||||
|
return extracted
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user