• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/Security-57031.1.35/Security/sec/Security/

Lines Matching refs:session

49 static void SecOTRInitMyDHKeys(SecOTRSessionRef session)
51 CFReleaseNull(session->_myKey);
52 session->_myKey = SecOTRFullDHKCreate(kCFAllocatorDefault);
53 CFReleaseNull(session->_myNextKey);
54 session->_myNextKey = SecOTRFullDHKCreate(kCFAllocatorDefault);
55 session->_keyID = 1;
57 bzero(session->_keyCache, sizeof(session->_keyCache));
60 OSStatus SecOTRSAppendStartPacket(SecOTRSessionRef session, CFMutableDataRef appendPacket)
64 dispatch_sync(session->_queue, ^{
65 session->_state = kAwaitingDHKey;
68 SecOTRInitMyDHKeys(session);
71 if (session->_textOutput) {
78 result = SecRandomCopyBytes(kSecRandomDefault, sizeof(session->_r), session->_r);
80 SecOTRAppendDHMessage(session, destinationMessage);
81 if (session->_textOutput) {
91 OSStatus SecOTRSAppendRestartPacket(SecOTRSessionRef session, CFMutableDataRef appendPacket)
95 dispatch_sync(session->_queue, ^{
96 if (!session->_myKey) {
102 if (session->_textOutput) {
108 session->_state = kAwaitingDHKey;
109 CFReleaseNull(session->_receivedDHMessage);
110 CFReleaseNull(session->_receivedDHKeyMessage);
112 SecOTRAppendDHMessage(session, destinationMessage);
113 if (session->_textOutput) {
149 static bool SecOTRMyGXHashIsBigger(SecOTRSessionRef session, CFDataRef dhCommitMessage)
155 SecOTRAppendDHMessage(session, myDHCommitMessage);
170 static OSStatus SecOTRSProcessDHMessage(SecOTRSessionRef session,
176 switch (session->_state) {
179 if (SecOTRMyGXHashIsBigger(session, incomingPacket)) {
181 CFReleaseNull(session->_receivedDHMessage);
182 SecOTRAppendDHMessage(session, negotiationResponse);
190 SecOTRInitMyDHKeys(session);
193 SecOTRAppendDHKeyMessage(session, negotiationResponse);
196 CFReleaseNull(session->_receivedDHMessage);
197 session->_receivedDHMessage = CFDataCreateCopy(kCFAllocatorDefault, incomingPacket);
199 session->_state = kAwaitingRevealSignature;
210 static OSStatus SecOTRSetupTheirKeyFrom(SecOTRSessionRef session, const uint8_t**data, size_t*size)
214 session->_theirKey = tempKey;
215 session->_theirKeyID = 1;
223 static OSStatus SecOTRSExtractTheirPublicDHKey(SecOTRSessionRef session, CFDataRef dhPacket)
234 result = SecOTRSetupTheirKeyFrom(session, &messageBytes, &messageSize);
241 static OSStatus SecOTRSProcessDHKeyMessage(SecOTRSessionRef session,
247 result = SecOTRSExtractTheirPublicDHKey(session, incomingPacket);
250 switch (session->_state) {
252 CFReleaseNull(session->_receivedDHKeyMessage);
253 SecOTRAppendRevealSignatureMessage(session, negotiationResponse);
254 session->_state = kAwaitingSignature;
255 session->_receivedDHKeyMessage = CFDataCreateCopy(kCFAllocatorDefault, incomingPacket);
259 if (CFEqualSafe(incomingPacket, session->_receivedDHKeyMessage))
260 SecOTRAppendRevealSignatureMessage(session, negotiationResponse);
278 static OSStatus SecOTRSExtractR(SecOTRSessionRef session,
295 memcpy(session->_r, *messageBytes, kOTRAuthKeyBytes);
305 static OSStatus FindEncGYInDHPacket(SecOTRSessionRef session,
329 static OSStatus SecOTRSExtractRAndTheirDHKey(SecOTRSessionRef session,
335 require(session->_receivedDHMessage != NULL, exit);
336 result = SecOTRSExtractR(session, messageBytes, messageSize);
342 const uint8_t* dhMessageBytes = CFDataGetBytePtr(session->_receivedDHMessage);
343 size_t dhMessageSize = (size_t)CFDataGetLength(session->_receivedDHMessage);
346 result = FindEncGYInDHPacket(session, &dhMessageBytes, &dhMessageSize, &encGYSize);
350 AES_CTR_IV0_Transform(sizeof(session->_r), session->_r, encGYSize, dhMessageBytes, gxiDecrypted);
352 result = SecOTRSetupTheirKeyFrom(session, &gxiDecryptedBuffer, &encGYSize);
359 static OSStatus SecVerifySignatureAndMac(SecOTRSessionRef session,
373 SecPDHKeyGenerateS(session->_myKey, session->_theirKey, s);
393 SecPDHKAppendSerialization(session->_theirKey, toHash);
394 SecFDHKAppendPublicSerialization(session->_myKey, toHash);
447 require_action(SecOTRPIEqualToBytes(session->_them, signaturePacket, (CFIndex)pubKeySize), exit, result = errSecAuthFailed);
452 result = ReadLong(&signaturePacket, &signaturePacketSize, &session->_theirKeyID);
460 bool bresult = SecOTRPIVerifySignature(session->_them, mb, sizeof(mb), signaturePacket, sigSize, NULL);
474 static OSStatus SecOTRSProcessRevealSignatureMessage(SecOTRSessionRef session,
480 require_action_quiet(session->_state == kAwaitingRevealSignature, exit, result = errSecSuccess);
485 result = SecOTRSExtractRAndTheirDHKey(session, &messageBytes, &messageSize);
488 result = SecVerifySignatureAndMac(session, false, &messageBytes, &messageSize);
491 SecOTRAppendSignatureMessage(session, negotiationResponse);
493 session->_state = kDone;
499 static OSStatus SecOTRSProcessSignatureMessage(SecOTRSessionRef session,
505 require_action_quiet(session->_state == kAwaitingSignature, exit, result = errSecSuccess);
515 result = SecVerifySignatureAndMac(session, true, &messageBytes, &messageSize);
518 CFReleaseNull(session->_receivedDHKeyMessage);
519 session->_state = kDone;
526 OSStatus SecOTRSProcessPacket(SecOTRSessionRef session,
533 dispatch_sync(session->_queue, ^{
544 if (session->_textOutput) {
552 result = SecOTRSProcessDHMessage(session, decodedBytes, destinationMessage);
555 result = SecOTRSProcessDHKeyMessage(session, decodedBytes, destinationMessage);
558 result = SecOTRSProcessRevealSignatureMessage(session, decodedBytes, destinationMessage);
561 result = SecOTRSProcessSignatureMessage(session, decodedBytes, destinationMessage);
569 secnotice("session", "Error %d processing packet type %d, session state %d, keyid %d, myKey %p, myNextKey %p, theirKeyId %d, theirKey %p, theirPreviousKey %p, bytes %@", (int)result, packetType, session->_state, session->_keyID, session->_myKey, session->_myNextKey, session->_theirKeyID, session->_theirKey, session->_theirPreviousKey, decodedBytes);
572 if (session->_textOutput) {