ios: nearbyConnections: Move source to //third_party.

PiperOrigin-RevId: 408046875
This commit is contained in:
edwinwu
2021-11-06 09:45:54 -07:00
committed by Copybara-Service
parent 8c2dd35eac
commit fb0337ebfa
76 changed files with 6192 additions and 7 deletions
+30
View File
@@ -0,0 +1,30 @@
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
licenses(["notice"])
package(default_visibility = ["//platform/impl/ios:__subpackages__"])
objc_library(
name = "Shared",
srcs = [
"GNCUtils.m",
],
hdrs = [
"GNCUtils.h",
],
deps = [
"//third_party/objective_c/google_toolbox_for_mac:GTM_StringEncoding",
"//smhasher:libmurmur3",
],
)
@@ -0,0 +1,50 @@
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
// Current version of socket protocol.
extern const int GNCSocketVersion;
#ifdef __cplusplus
extern "C" {
#endif
/// Generates a SHA-256 hash (32 bytes) from a data object.
NSData *_Nullable GNCSha256Data(NSData *data);
/// Generates a SHA-256 hash (32 bytes) from a string.
NSData *_Nullable GNCSha256String(NSString *string);
/// Generates an MD5 hash (16 bytes) from a data object.
NSData *_Nullable GNCMd5Data(NSData *data);
/// Generates an MD5 hash (16 bytes) from a string.
NSData *_Nullable GNCMd5String(NSString *string);
/// Base64-encode.
NSString *GNCBase64Encode(NSData *data);
/// Base64-decode.
NSData *GNCBase64Decode(NSString *string);
#ifdef __cplusplus
} // extern "C"
#endif
NS_ASSUME_NONNULL_END
@@ -0,0 +1,65 @@
#import "third_party/nearby_connections/cpp/platform/impl/ios/Source/Shared/GNCUtils.h"
#import <CommonCrypto/CommonDigest.h>
#import "third_party/objective_c/google_toolbox_for_mac/Foundation/GTMStringEncoding.h"
// Copyright 2020 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
NS_ASSUME_NONNULL_BEGIN
const int GNCSocketVersion = 2;
NSData *GNCSha256Data(NSData *data) {
unsigned char output[CC_SHA256_DIGEST_LENGTH];
CC_LONG length = (CC_LONG)data.length;
if (!CC_SHA256(data.bytes, length, output)) return nil;
return [NSData dataWithBytes:output length:CC_SHA256_DIGEST_LENGTH];
}
NSData *GNCSha256String(NSString *string) {
return GNCSha256Data([string dataUsingEncoding:NSUTF8StringEncoding]);
}
NSData *GNCMd5Data(NSData *data) {
unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH];
CC_MD5(data.bytes, (CC_LONG)data.length, md5Buffer);
return [NSData dataWithBytes:md5Buffer length:CC_MD5_DIGEST_LENGTH];
}
NSData *GNCMd5String(NSString *string) {
return GNCMd5Data([string dataUsingEncoding:NSUTF8StringEncoding]);
}
static GTMStringEncoding *GNCBase64WebSafeEncodingNoPadding() {
static dispatch_once_t onceToken;
static GTMStringEncoding *encoding;
dispatch_once(&onceToken, ^{
encoding = [GTMStringEncoding stringEncodingWithString:
@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"];
[encoding setDoPad:NO];
});
return encoding;
}
NSString *GNCBase64Encode(NSData *data) {
return [GNCBase64WebSafeEncodingNoPadding() encode:data error:nil];
}
NSData *GNCBase64Decode(NSString *string) {
return [GNCBase64WebSafeEncodingNoPadding() decode:string error:nil];
}
NS_ASSUME_NONNULL_END