12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- //
- // Copyright (c) 2016-present, Facebook, Inc.
- // All rights reserved.
- //
- // This source code is licensed under the BSD-style license found in the
- // LICENSE file in the root directory of this source tree. An additional grant
- // of patent rights can be found in the PATENTS file in the same directory.
- //
- #import "SRHash.h"
- #import <CommonCrypto/CommonDigest.h>
- NS_ASSUME_NONNULL_BEGIN
- NSData *SRSHA1HashFromString(NSString *string)
- {
- size_t length = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
- return SRSHA1HashFromBytes(string.UTF8String, length);
- }
- NSData *SRSHA1HashFromBytes(const char *bytes, size_t length)
- {
- uint8_t outputLength = CC_SHA1_DIGEST_LENGTH;
- unsigned char output[outputLength];
- CC_SHA1(bytes, (CC_LONG)length, output);
- return [NSData dataWithBytes:output length:outputLength];
- }
- NSString *SRBase64EncodedStringFromData(NSData *data)
- {
- if ([data respondsToSelector:@selector(base64EncodedStringWithOptions:)]) {
- return [data base64EncodedStringWithOptions:0];
- }
- #pragma clang diagnostic push
- #pragma clang diagnostic ignored "-Wdeprecated-declarations"
- return [data base64Encoding];
- #pragma clang diagnostic pop
- }
- NS_ASSUME_NONNULL_END
|