Index: lib/src/crypto_utils.dart |
diff --git a/lib/src/crypto_utils.dart b/lib/src/crypto_utils.dart |
index 42871db31b7bf22ee32d587b42d62960fbd8776d..84987160b52a78bfc7b55c98255b96f718b1e752 100644 |
--- a/lib/src/crypto_utils.dart |
+++ b/lib/src/crypto_utils.dart |
@@ -2,9 +2,18 @@ |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
-part of crypto; |
+library crypto.crypto_utils; |
-abstract class _CryptoUtils { |
+import 'base64.dart'; |
+ |
+/** |
+ * Utility methods for working with message digests. |
+ */ |
+abstract class CryptoUtils { |
+ /** |
+ * Convert a list of bytes (for example a message digest) into a hex |
+ * string. |
+ */ |
static String bytesToHex(List<int> bytes) { |
var result = new StringBuffer(); |
for (var part in bytes) { |
@@ -13,12 +22,37 @@ abstract class _CryptoUtils { |
return result.toString(); |
} |
+ /** |
+ * Converts a list of bytes into a Base 64 encoded string. |
+ * |
+ * The list can be any list of integers in the range 0..255, |
+ * for example a message digest. |
+ * |
+ * If [addLineSeparator] is true, the resulting string will be |
+ * broken into lines of 76 characters, separated by "\r\n". |
+ * |
+ * If [urlSafe] is true, the result is URL and filename safe. |
+ * |
+ * Based on [RFC 4648](http://tools.ietf.org/html/rfc4648) |
+ * |
+ */ |
static String bytesToBase64(List<int> bytes, |
[bool urlSafe = false, bool addLineSeparator = false]) { |
return BASE64.encode(bytes, |
urlSafe: urlSafe, addLineSeparator: addLineSeparator); |
} |
+ /** |
+ * Converts a Base 64 encoded String into list of bytes. |
+ * |
+ * Decoder ignores "\r\n" sequences from input. |
+ * |
+ * Accepts both URL safe and unsafe Base 64 encoded strings. |
+ * |
+ * Throws a FormatException exception if input contains invalid characters. |
+ * |
+ * Based on [RFC 4648](http://tools.ietf.org/html/rfc4648) |
+ */ |
static List<int> base64StringToBytes(String input) { |
return BASE64.decode(input); |
} |