diff --git a/internal/encoding/base85.cc b/internal/encoding/base85.cc index 3a0fb31b..9b9f3114 100644 --- a/internal/encoding/base85.cc +++ b/internal/encoding/base85.cc @@ -67,7 +67,8 @@ std::string Base85Encode(const std::string& input, bool padding) { char* result_buffer_end = result.data() + result.size(); size_t bytes = input.size(); - const char* data = input.data(); + const unsigned char* data = + reinterpret_cast(input.data()); while (bytes) { int count; uint32_t value = 0; diff --git a/internal/platform/implementation/apple/Tests/NSData+GNCBase85Test.m b/internal/platform/implementation/apple/Tests/NSData+GNCBase85Test.m index dd4483c7..33fc2f1c 100644 --- a/internal/platform/implementation/apple/Tests/NSData+GNCBase85Test.m +++ b/internal/platform/implementation/apple/Tests/NSData+GNCBase85Test.m @@ -43,6 +43,18 @@ XCTAssertEqualObjects(decodedData, data); } +- (void)testEncodingAndDecoding { + unsigned char hexBytes[] = {0x20, 0x25, 0xdf, 0x06, 0x24, 0x00, 0x11, 0x88, 0x07, + 0xda, 0x54, 0x65, 0x73, 0x74, 0x20, 0x64, 0x65}; + + NSUInteger length = sizeof(hexBytes) / sizeof(hexBytes[0]); + + NSData *data = [NSData dataWithBytes:hexBytes length:length]; + NSString *actual = [data base85EncodedString]; + XCTAssertEqualObjects(actual, @"+=5nL,QJF4#MN-gF*&O8AH"); + XCTAssertEqualObjects([[NSData alloc] initWithBase85EncodedString:actual], data); +} + - (void)testEncodingEmptyData { XCTAssertEqualObjects([[@"" dataUsingEncoding:NSUTF8StringEncoding] base85EncodedString], @""); }