| 
					
				 | 
			
			
				@@ -126,6 +126,13 @@ static NSMutableDictionary *kHostCache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         completionQueue:queue]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (NSData *)dataWithNsString:(NSString *)string { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NSData *data = [string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  NSMutableData *nullTerminated = [NSMutableData dataWithData: data]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  [nullTerminated appendBytes:"\0" length:1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return nullTerminated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             withPrivateKey:(nullable NSString *)pemPrivateKey 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              withCertChain:(nullable NSString *)pemCertChain 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -147,13 +154,12 @@ static NSMutableDictionary *kHostCache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       kDefaultRootsError = error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    kDefaultRootsASCII = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [contentInUTF8 dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    kDefaultRootsASCII = [self dataWithNsString:contentInUTF8]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   NSData *rootsASCII; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (pemRootCerts != nil) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    rootsASCII = [pemRootCerts dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rootsASCII = [self dataWithNsString:pemRootCerts]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (kDefaultRootsASCII == nil) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (errorPtr) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -176,10 +182,8 @@ static NSMutableDictionary *kHostCache; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     creds = grpc_ssl_credentials_create(rootsASCII.bytes, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     grpc_ssl_pem_key_cert_pair key_cert_pair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSData *privateKeyASCII = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [pemPrivateKey dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSData *certChainASCII = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [pemCertChain dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NSData *privateKeyASCII = [self dataWithNsString:pemPrivateKey]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NSData *certChainASCII = [self dataWithNsString:pemCertChain]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     key_cert_pair.private_key = privateKeyASCII.bytes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     key_cert_pair.cert_chain = certChainASCII.bytes; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     creds = grpc_ssl_credentials_create(rootsASCII.bytes, &key_cert_pair, NULL); 
			 |