+++ /dev/null
-/*
- * Copyright (c) 2012 Apple, Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
-//
-// timestampclient.m
-// libsecurity_keychain
-//
-
-#import "timestampclient.h"
-
-void sendTSARequest(CFDataRef tsaReq, const char *tsaURL, TSARequestCompletionBlock completionBlock)
-{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
- NSString *urlStr = [NSString stringWithCString:tsaURL encoding:NSUTF8StringEncoding];
- TimeStampClient *client = [[TimeStampClient alloc] initWithURLString:urlStr];
- [client post:(NSData *)tsaReq];
- [client start3:completionBlock];
- [client release];
- [pool release];
-}
-
-@implementation TimeStampClient
-
-@synthesize delegate;
-@synthesize url;
-@synthesize urlRequest;
-
-- (id)init
-{
- self = [super init];
- return self;
-}
-
-- (id)initWithURLString:(NSString *)urlStr
-{
- if ((self = [super init]))
- {
- NSString *escapedURLStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- self.url = [NSURL URLWithString:escapedURLStr];
- self.urlRequest = [[NSMutableURLRequest alloc] initWithURL:self.url
- cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:(NSTimeInterval)15.0];
- }
- return self;
-}
-
-- (void)dealloc
-{
- [url release];
- [urlRequest release];
- [super dealloc];
-}
-
-- (void)post: (NSData *)data
-{
- NSMutableURLRequest *request = self.urlRequest;
-
- [request setHTTPMethod:@"POST"];
- [request setHTTPBody:data];
- [request setValue:@"application/timestamp-query" forHTTPHeaderField:@"Content-Type"];
-}
-
-- (void)start3:(TSARequestCompletionBlock)completionBlock
-{
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0),
- ^{
- NSOperationQueue *opq = [[NSOperationQueue alloc] init];
- [NSURLConnection sendAsynchronousRequest:self.urlRequest
- queue:opq completionHandler: completionBlock
- ];
- });
-}
-
-@end
-
-
-
-