summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2012-04-28 17:54:04 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2012-04-28 17:54:04 -0700
commitf595cabfa6626c6f2aaa09dd021411058ac53573 (patch)
treebd5049305817c0d4f02c7f9e67cbb918408f0f40 /src
parentd10db64d32f10c9514918541542af3bbf5889fca (diff)
downloadDotNetOpenAuth-f595cabfa6626c6f2aaa09dd021411058ac53573.zip
DotNetOpenAuth-f595cabfa6626c6f2aaa09dd021411058ac53573.tar.gz
DotNetOpenAuth-f595cabfa6626c6f2aaa09dd021411058ac53573.tar.bz2
Added a base64web encoder for byte[] typed message parts.
Diffstat (limited to 'src')
-rw-r--r--src/DotNetOpenAuth.Core/DotNetOpenAuth.Core.csproj1
-rw-r--r--src/DotNetOpenAuth.Core/Messaging/Base64WebEncoder.cs37
2 files changed, 38 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.Core/DotNetOpenAuth.Core.csproj b/src/DotNetOpenAuth.Core/DotNetOpenAuth.Core.csproj
index c0aef30..5e079a0 100644
--- a/src/DotNetOpenAuth.Core/DotNetOpenAuth.Core.csproj
+++ b/src/DotNetOpenAuth.Core/DotNetOpenAuth.Core.csproj
@@ -19,6 +19,7 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="Assumes.cs" />
+ <Compile Include="Messaging\Base64WebEncoder.cs" />
<Compile Include="Messaging\Bindings\AsymmetricCryptoKeyStoreWrapper.cs" />
<Compile Include="Messaging\Bindings\CryptoKey.cs" />
<Compile Include="Messaging\Bindings\CryptoKeyCollisionException.cs" />
diff --git a/src/DotNetOpenAuth.Core/Messaging/Base64WebEncoder.cs b/src/DotNetOpenAuth.Core/Messaging/Base64WebEncoder.cs
new file mode 100644
index 0000000..135e650
--- /dev/null
+++ b/src/DotNetOpenAuth.Core/Messaging/Base64WebEncoder.cs
@@ -0,0 +1,37 @@
+//-----------------------------------------------------------------------
+// <copyright file="Base64WebEncoder.cs" company="Andrew Arnott">
+// Copyright (c) Andrew Arnott. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+namespace DotNetOpenAuth.Messaging {
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Text;
+ using DotNetOpenAuth.Messaging.Reflection;
+
+ /// <summary>
+ /// A message part encoder that translates between <c>byte[]</c> and base64web encoded strings.
+ /// </summary>
+ internal class Base64WebEncoder : IMessagePartEncoder {
+ /// <summary>
+ /// Encodes the specified value.
+ /// </summary>
+ /// <param name="value">The value. Guaranteed to never be null.</param>
+ /// <returns>The <paramref name="value"/> in string form, ready for message transport.</returns>
+ public string Encode(object value) {
+ return MessagingUtilities.ConvertToBase64WebSafeString((byte[])value);
+ }
+
+ /// <summary>
+ /// Decodes the specified value.
+ /// </summary>
+ /// <param name="value">The string value carried by the transport. Guaranteed to never be null, although it may be empty.</param>
+ /// <returns>The deserialized form of the given string.</returns>
+ /// <exception cref="FormatException">Thrown when the string value given cannot be decoded into the required object type.</exception>
+ public object Decode(string value) {
+ return MessagingUtilities.FromBase64WebSafeString(value);
+ }
+ }
+}