Compare commits

..
+14 -9
View File
@@ -122,8 +122,8 @@ struct NostrProtocol {
tags: tags, tags: tags,
content: content content: content
) )
let schnorrKey = try senderIdentity.schnorrSigningKey() let signingKey = try senderIdentity.signingKey()
return try event.sign(with: schnorrKey) return try event.sign(with: signingKey)
} }
// MARK: - Private Methods // MARK: - Private Methods
@@ -149,8 +149,9 @@ struct NostrProtocol {
content: encrypted content: encrypted
) )
// Sign the seal with the sender's Schnorr private key // Convert to P256K.Signing.PrivateKey for signing (temporary until we update sign method)
return try seal.sign(with: senderKey) let signingKey = try P256K.Signing.PrivateKey(dataRepresentation: senderKey.dataRepresentation)
return try seal.sign(with: signingKey)
} }
private static func createGiftWrap( private static func createGiftWrap(
@@ -180,8 +181,9 @@ struct NostrProtocol {
content: encrypted content: encrypted
) )
// Sign the gift wrap with the wrap Schnorr private key // Convert to P256K.Signing.PrivateKey for signing (temporary until we update sign method)
return try giftWrap.sign(with: wrapKey) let signingKey = try P256K.Signing.PrivateKey(dataRepresentation: wrapKey.dataRepresentation)
return try giftWrap.sign(with: signingKey)
} }
private static func unwrapGiftWrap( private static func unwrapGiftWrap(
@@ -470,16 +472,19 @@ struct NostrEvent: Codable {
self.sig = dict["sig"] as? String self.sig = dict["sig"] as? String
} }
func sign(with key: P256K.Schnorr.PrivateKey) throws -> NostrEvent { func sign(with key: P256K.Signing.PrivateKey) throws -> NostrEvent {
let (eventId, eventIdHash) = try calculateEventId() let (eventId, eventIdHash) = try calculateEventId()
// Sign with Schnorr (BIP-340) // Convert to Schnorr key for Nostr signing
let schnorrKey = try P256K.Schnorr.PrivateKey(dataRepresentation: key.dataRepresentation)
// Sign with Schnorr
var messageBytes = [UInt8](eventIdHash) var messageBytes = [UInt8](eventIdHash)
var auxRand = [UInt8](repeating: 0, count: 32) var auxRand = [UInt8](repeating: 0, count: 32)
_ = auxRand.withUnsafeMutableBytes { ptr in _ = auxRand.withUnsafeMutableBytes { ptr in
SecRandomCopyBytes(kSecRandomDefault, 32, ptr.baseAddress!) SecRandomCopyBytes(kSecRandomDefault, 32, ptr.baseAddress!)
} }
let schnorrSignature = try key.signature(message: &messageBytes, auxiliaryRand: &auxRand) let schnorrSignature = try schnorrKey.signature(message: &messageBytes, auxiliaryRand: &auxRand)
let signatureHex = schnorrSignature.dataRepresentation.hexEncodedString() let signatureHex = schnorrSignature.dataRepresentation.hexEncodedString()