|  | @@ -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);
 |