Skip to content

Commit

Permalink
fix a base85 bug on iOS
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 731849590
  • Loading branch information
ggli-google authored and copybara-github committed Feb 27, 2025
1 parent 37538b8 commit 528c714
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
3 changes: 2 additions & 1 deletion internal/encoding/base85.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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<const unsigned char*>(input.data());
while (bytes) {
int count;
uint32_t value = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,18 @@ - (void)testDecoding {
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], @"");
}
Expand Down

0 comments on commit 528c714

Please sign in to comment.