Advertisement
Guest User

Cocoa/CoreFoundation STARTTLS

a guest
May 13th, 2014
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. NSInputStream *input;
  2. NSOutputStream *output;
  3. [NSStream getStreamsToHost:[NSHost hostWithName:@"smtp.gmail.com"] port:587 inputStream:&input outputStream:&output];
  4. [input open];
  5. [output open];
  6. char line[LINE_MAX];
  7. uint8_t *buf = (uint8_t *)line;
  8. line[[input read:buf maxLength:LINE_MAX] + 1] = 0;
  9. NSLog(@"%s",line);
  10. strncpy(line, "EHLO\r\n", LINE_MAX);
  11. [output write:buf maxLength:strlen(line)];
  12. line[[input read:buf maxLength:LINE_MAX] + 1] = 0;
  13. NSLog(@"%s",line);
  14. strncpy(line, "STARTTLS\r\n", LINE_MAX);
  15. [output write:buf maxLength:strlen(line)];
  16. line[[input read:buf maxLength:LINE_MAX] + 1] = 0;
  17. NSLog(@"%s",line);
  18. NSDictionary *d = @{(__bridge NSString *)kCFStreamSSLPeerName:@"smtp.gmail.com", (__bridge NSString *)kCFStreamSSLLevel:(__bridge NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL};
  19. [input setProperty:d forKey:(__bridge NSString *)kCFStreamPropertySSLSettings];
  20. [output setProperty:d forKey:(__bridge NSString *)kCFStreamPropertySSLSettings];
  21. [input open];
  22. [output open];
  23. strncpy(line, "EHLO\r\n", LINE_MAX);
  24. [output write:buf maxLength:strlen(line)];
  25. line[[input read:buf maxLength:LINE_MAX] + 1] = 0;
  26. NSLog(@"%s",line);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement