FRAQRUtils.h revision 2708b42676edf3d2e8f85b3c22b9e3be3cf43eb8
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder/*
e9458b1a7a19a63aa4c179f9ab20f4d50681c168Jens Elkner * The contents of this file are subject to the terms of the Common Development and
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * Distribution License (the License). You may not use this file except in compliance with the
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * License.
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu Prodescu *
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * specific language governing permission and limitations under the License.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder *
7e11afd342a92b27991109105876609ed1cd5281Christian Maeder * When distributing Covered Software, include this CDDL Header Notice in each file and include
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * Header, with the fields enclosed by brackets [] replaced by your own identifying
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * information: "Portions copyright [year] [name of copyright owner]".
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder *
706201451843aa76b8d862de800570c9838c9910Christian Maeder * Copyright 2016 ForgeRock AS.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder */
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder
c385dc6db4f50dac0aaf914a67445ccd2a3c8fa0Christian Maeder/*!
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * Utility class for assisting in the reading of QR code uri strings.
c385dc6db4f50dac0aaf914a67445ccd2a3c8fa0Christian Maeder */
c385dc6db4f50dac0aaf914a67445ccd2a3c8fa0Christian Maeder@interface FRAQRUtils : NSObject
c385dc6db4f50dac0aaf914a67445ccd2a3c8fa0Christian Maeder
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder/*!
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * Replaces characters for url decoding.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder *
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * @param content The original string.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * @return The string with replaced characters.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder */
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder+ (NSString *)replaceCharactersForURLDecoding:(NSString *)content;
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder
773a3d8e40d41417d7c7c92c65c9ff1e49f66ce2Christian Maeder/*!
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * Decodes from Base64 url encoded string.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder *
773a3d8e40d41417d7c7c92c65c9ff1e49f66ce2Christian Maeder * @param content The original string to decode.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * @return The decoded string.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder */
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder+ (NSData *)decodeURL:(NSString *)content;
773a3d8e40d41417d7c7c92c65c9ff1e49f66ce2Christian Maeder
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder/*!
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder * Decodes a Base64 encoded string.
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder *
706201451843aa76b8d862de800570c9838c9910Christian Maeder * @param base64String The original Base64 string to decode.
706201451843aa76b8d862de800570c9838c9910Christian Maeder * @return The decoded string.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder */
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder+ (NSData *)decodeBase64:(NSString *)base64String;
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder
c8a9d35be2207e0d4fbd26a2411e1ba17e3e4c96Christian Maeder/*!
199933c20cf5d8101c92fef643ab2f8ab5d6e0e4Christian Maeder * Decodes an encoded string.
706201451843aa76b8d862de800570c9838c9910Christian Maeder *
706201451843aa76b8d862de800570c9838c9910Christian Maeder * @param str The original string to decode.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder * @return The decode string.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder */
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder+ (NSString *)decode:(NSString*)str;
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder
773a3d8e40d41417d7c7c92c65c9ff1e49f66ce2Christian Maeder/*!
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder * Pads a string with '=' to have length multiple of 4 (for Base64 decoding).
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder *
706201451843aa76b8d862de800570c9838c9910Christian Maeder * @param str The original string to pad.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder * @return The padded string.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder */
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder+ (NSString *)pad:(NSString*)str;
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder/*!
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder * Checks if the given string is a valid Base64 string.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder *
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder * @param content The original string to check.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder * @return YES if the string is a valid Base64 string, otherwise NO.
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder */
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder+ (BOOL)isBase64:(NSString *)content;
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder
9e9e018cefd6a9a242a93af959369dc7aa8f8526Christian Maeder@end