Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Michael Telatynski
Olm
Commits
4a2aac58
Commit
4a2aac58
authored
Oct 14, 2016
by
manuroe
Browse files
OLMKit: Add signature tests
parent
d1060af8
Changes
3
Hide whitespace changes
Inline
Side-by-side
xcode/OLMKit/OLMUtility.h
View file @
4a2aac58
...
...
@@ -13,16 +13,16 @@
/**
Verify an ed25519 signature.
@param signature the base64-encoded signature to be checked.
@param key the ed25519 key.
@param message the message which was signed.
@param signature the base64-encoded signature to be checked.
@param the result error if there is a problem with the verification.
If the key was too small then the message will be "OLM.INVALID_BASE64".
If the signature was invalid then the message will be "OLM.BAD_MESSAGE_MAC".
@return YES if valid.
*/
-
(
BOOL
)
ed25519Verify
:(
NSString
*
)
key
message
:(
NSString
*
)
message
signature
:(
NSString
*
)
signatur
e
error
:(
NSError
**
)
error
;
-
(
BOOL
)
verifyEd25519Signature
:(
NSString
*
)
signature
key
:(
NSString
*
)
key
message
:(
NSData
*
)
messag
e
error
:(
NSError
**
)
error
;
+
(
NSMutableData
*
)
randomBytesOfLength
:(
NSUInteger
)
length
;
...
...
xcode/OLMKit/OLMUtility.m
View file @
4a2aac58
...
...
@@ -50,19 +50,18 @@
return
self
;
}
-
(
BOOL
)
ed25519Verify
:(
NSString
*
)
key
message
:(
NSString
*
)
message
signature
:(
NSString
*
)
signature
error
:(
NSError
*
__autoreleasing
*
)
error
{
-
(
BOOL
)
verifyEd25519Signature
:(
NSString
*
)
signature
key
:(
NSString
*
)
key
message
:(
NSData
*
)
message
error
:(
NSError
*
*
)
error
{
NSData
*
keyData
=
[
key
dataUsingEncoding
:
NSUTF8StringEncoding
];
NSData
*
messageData
=
[
message
dataUsingEncoding
:
NSUTF8StringEncoding
];
NSData
*
signatureData
=
[
signature
dataUsingEncoding
:
NSUTF8StringEncoding
];
size_t
result
=
olm_ed25519_verify
(
_utility
,
keyData
.
bytes
,
keyData
.
length
,
message
Data
.
bytes
,
message
Data
.
length
,
message
.
bytes
,
message
.
length
,
signatureData
.
bytes
,
signatureData
.
length
);
if
(
result
<
0
)
{
if
(
result
<
0
||
result
==
(
size_t
)
-
1
)
{
if
(
error
)
{
NSDictionary
*
userInfo
=
@{
NSLocalizedFailureReasonErrorKey
:
[
NSString
stringWithUTF8String
:
olm_utility_last_error
(
_utility
)]};
...
...
xcode/OLMKitTests/OLMKitTests.m
View file @
4a2aac58
...
...
@@ -157,5 +157,25 @@
XCTAssertEqualObjects
(
msg3
,
dMsg3
);
}
-
(
void
)
testEd25519Signing
{
OLMUtility
*
olmUtility
=
[[
OLMUtility
alloc
]
init
];
OLMAccount
*
alice
=
[[
OLMAccount
alloc
]
initNewAccount
];
NSDictionary
*
aJSON
=
@{
@"key1"
:
@"value1"
,
@"key2"
:
@"value2"
};
NSData
*
message
=
[
NSKeyedArchiver
archivedDataWithRootObject
:
aJSON
];
NSString
*
signature
=
[
alice
signMessage
:
message
];
NSString
*
aliceEd25519Key
=
alice
.
identityKeys
[
@"ed25519"
];
NSError
*
error
;
BOOL
result
=
[
olmUtility
verifyEd25519Signature
:
signature
key
:
aliceEd25519Key
message
:
message
error
:&
error
];
XCTAssert
(
result
);
XCTAssertNil
(
error
);
}
@end
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment