You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
How to compute shared secret using EC public key x and y values and private key d value using the below function and i am getting back nil. I tried to decode and i can see the privateD which i am passing returns back nil from importKey method where the value of status is -4302.
Can you please help what format Data should i be passing into the computeSharedSecret for it to work in this case ?
var publicX = "2_v-MuNZccqwM7PXlakW9oHLP5XyrjMG1UVS8OxYrgA"
var publicY = "rm1ktLmFIsP2R0YyJGXtsCbaTUesUK31Xc04tHJRolc"
let privateD = "iyn--IbkBeNoPu8cN245L6pOQWt2lTH8V0Ds92jQmWA"
let binaryPrivateData = privateDData(base64String: privateD)
let publicKeyData = dataFromPublicXandY(x: publicX, y: publicY)
let shared = try? CC.EC.computeSharedSecret(binaryPrivateData, publicKey: publicKeyData)
print(shared) // is nil
func privateDData(base64String: String) -> Data {
let base64Co = base64urlToBase64(base64url: base64String)
//print(base64Q) // hJQWHABDBjoPHorYF5xghQ==
let decodedDataCo = Data(base64Encoded: base64Co)
return decodedDataCo!
}
func dataFromPublicXandY(x: String, y:String) -> Data {
var xStr = x
var yStr = y
xStr = xStr.replacingOccurrences(of: "-", with: "+").replacingOccurrences(of: "_", with: "/")
if xStr.count % 4 == 2 {
xStr.append("==")
}
if xStr.count % 4 == 3 {
xStr.append("=")
}
yStr = yStr.replacingOccurrences(of: "-", with: "+").replacingOccurrences(of: "_", with: "/")
if yStr.count % 4 == 2 {
yStr.append("==")
}
if yStr.count % 4 == 3 {
yStr.append("=")
}
let xBytes = Data(base64Encoded: xStr)
/*Same with y and d*/
let yBytes = Data(base64Encoded: yStr)
//Now this bytes we have to append such that [0x04 , /* xBytes */, /* yBytes */, /* dBytes */]
//Initial byte for uncompressed y as Key.
let keyData = NSMutableData.init(bytes: [0x04], length: [0x04].count)
keyData.append(xBytes!)
keyData.append(yBytes!)
return keyData as Data
}
The text was updated successfully, but these errors were encountered:
Hi
How to compute shared secret using EC public key x and y values and private key d value using the below function and i am getting back nil. I tried to decode and i can see the privateD which i am passing returns back nil from importKey method where the value of status is -4302.
Can you please help what format Data should i be passing into the computeSharedSecret for it to work in this case ?
The text was updated successfully, but these errors were encountered: