123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- //
- // GTMBase64.h
- //
- // Copyright 2006-2008 Google Inc.
- //
- // 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
- //
- // http://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>
- // GTMBase64
- //
- /// Helper for handling Base64 and WebSafeBase64 encodings
- //
- /// The webSafe methods use different character set and also the results aren't
- /// always padded to a multiple of 4 characters. This is done so the resulting
- /// data can be used in urls and url query arguments without needing any
- /// encoding. You must use the webSafe* methods together, the data does not
- /// interop with the RFC methods.
- //
- @interface QN_GTM_Base64 : NSObject
- //
- // Standard Base64 (RFC) handling
- //
- // encodeData:
- //
- /// Base64 encodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- + (NSData *)encodeData:(NSData *)data;
- // decodeData:
- //
- /// Base64 decodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- + (NSData *)decodeData:(NSData *)data;
- // encodeBytes:length:
- //
- /// Base64 encodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- + (NSData *)encodeBytes:(const void *)bytes length:(NSUInteger)length;
- // decodeBytes:length:
- //
- /// Base64 decodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- + (NSData *)decodeBytes:(const void *)bytes length:(NSUInteger)length;
- // stringByEncodingData:
- //
- /// Base64 encodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- + (NSString *)stringByEncodingData:(NSData *)data;
- // stringByEncodingBytes:length:
- //
- /// Base64 encodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- + (NSString *)stringByEncodingBytes:(const void *)bytes length:(NSUInteger)length;
- // decodeString:
- //
- /// Base64 decodes contents of the NSString.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- + (NSData *)decodeString:(NSString *)string;
- //
- // Modified Base64 encoding so the results can go onto urls.
- //
- // The changes are in the characters generated and also allows the result to
- // not be padded to a multiple of 4.
- // Must use the matching call to encode/decode, won't interop with the
- // RFC versions.
- //
- // webSafeEncodeData:padded:
- //
- /// WebSafe Base64 encodes contents of the NSData object. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- + (NSData *)webSafeEncodeData:(NSData *)data
- padded:(BOOL)padded;
- // webSafeDecodeData:
- //
- /// WebSafe Base64 decodes contents of the NSData object.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- + (NSData *)webSafeDecodeData:(NSData *)data;
- // webSafeEncodeBytes:length:padded:
- //
- /// WebSafe Base64 encodes the data pointed at by |bytes|. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- + (NSData *)webSafeEncodeBytes:(const void *)bytes
- length:(NSUInteger)length
- padded:(BOOL)padded;
- // webSafeDecodeBytes:length:
- //
- /// WebSafe Base64 decodes the data pointed at by |bytes|.
- //
- /// Returns:
- /// A new autoreleased NSData with the encoded payload. nil for any error.
- //
- + (NSData *)webSafeDecodeBytes:(const void *)bytes length:(NSUInteger)length;
- // stringByWebSafeEncodingData:padded:
- //
- /// WebSafe Base64 encodes contents of the NSData object. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- + (NSString *)stringByWebSafeEncodingData:(NSData *)data
- padded:(BOOL)padded;
- // stringByWebSafeEncodingBytes:length:padded:
- //
- /// WebSafe Base64 encodes the data pointed at by |bytes|. If |padded| is YES
- /// then padding characters are added so the result length is a multiple of 4.
- //
- /// Returns:
- /// A new autoreleased NSString with the encoded payload. nil for any error.
- //
- + (NSString *)stringByWebSafeEncodingBytes:(const void *)bytes
- length:(NSUInteger)length
- padded:(BOOL)padded;
- // webSafeDecodeString:
- //
- /// WebSafe Base64 decodes contents of the NSString.
- //
- /// Returns:
- /// A new autoreleased NSData with the decoded payload. nil for any error.
- //
- + (NSData *)webSafeDecodeString:(NSString *)string;
- @end
|