diff --git a/.travis.yml b/.travis.yml
index cde2825..f433179 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,6 @@
 language: dart
 
 dart:
-  - stable
   - dev
 
 dart_task:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9538d91..9d0316d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.0.3
+
+* Updated SDK version to 2.0.0-dev.17.0
+
 ## 2.0.2+1
 
 * Fix SDK constraint.
diff --git a/README.md b/README.md
index e8d1009..a5fe3c3 100644
--- a/README.md
+++ b/README.md
@@ -19,10 +19,10 @@
 
 ```dart
 import 'package:crypto/crypto.dart';
-import 'dart:convert'; // for the UTF8.encode method
+import 'dart:convert'; // for the utf8.encode method
 
 void main() {
-  var bytes = UTF8.encode("foobar"); // data being hashed
+  var bytes = utf8.encode("foobar"); // data being hashed
 
   var digest = sha1.convert(bytes);
 
@@ -48,8 +48,8 @@
 import 'package:crypto/src/digest_sink.dart';
 
 void main() {
-  var firstChunk = UTF8.encode("foo");
-  var secondChunk = UTF8.encode("bar");
+  var firstChunk = utf8.encode("foo");
+  var secondChunk = utf8.encode("bar");
 
   var ds = new DigestSink();
   var s = sha1.startChunkedConversion(ds);
@@ -81,8 +81,8 @@
 import 'package:crypto/src/digest_sink.dart';
 
 void main() {
-  var key = UTF8.encode('p@ssw0rd');
-  var bytes = UTF8.encode("foobar");
+  var key = utf8.encode('p@ssw0rd');
+  var bytes = utf8.encode("foobar");
 
   var hmacSha256 = new Hmac(sha256, key); // HMAC-SHA256
   var digest = hmacSha256.convert(bytes);
diff --git a/lib/src/hash_sink.dart b/lib/src/hash_sink.dart
index ef38780..857b466 100644
--- a/lib/src/hash_sink.dart
+++ b/lib/src/hash_sink.dart
@@ -17,7 +17,7 @@
   final Sink<Digest> _sink;
 
   /// Whether the hash function operates on big-endian words.
-  final Endianness _endian;
+  final Endian _endian;
 
   /// The words in the current chunk.
   ///
@@ -47,8 +47,7 @@
   ///
   /// [chunkSizeInWords] represents the size of the input chunks processed by
   /// the algorithm, in terms of 32-bit words.
-  HashSink(this._sink, int chunkSizeInWords,
-      {Endianness endian: Endianness.BIG_ENDIAN})
+  HashSink(this._sink, int chunkSizeInWords, {Endian endian: Endian.big})
       : _endian = endian,
         _currentChunk = new Uint32List(chunkSizeInWords);
 
@@ -80,7 +79,7 @@
   }
 
   Uint8List _byteDigest() {
-    if (_endian == Endianness.HOST_ENDIAN) return digest.buffer.asUint8List();
+    if (_endian == Endian.host) return digest.buffer.asUint8List();
 
     var byteDigest = new Uint8List(digest.lengthInBytes);
     var byteData = byteDigest.buffer.asByteData();
@@ -143,7 +142,7 @@
     // manually instead.
     var highBits = lengthInBits >> 32;
     var lowBits = lengthInBits & mask32;
-    if (_endian == Endianness.BIG_ENDIAN) {
+    if (_endian == Endian.big) {
       byteData.setUint32(offset, highBits, _endian);
       byteData.setUint32(offset + bytesPerWord, lowBits, _endian);
     } else {
diff --git a/lib/src/md5.dart b/lib/src/md5.dart
index 2729c5c..50cf576 100644
--- a/lib/src/md5.dart
+++ b/lib/src/md5.dart
@@ -72,8 +72,7 @@
   @override
   final digest = new Uint32List(4);
 
-  _MD5Sink(Sink<Digest> sink)
-      : super(sink, 16, endian: Endianness.LITTLE_ENDIAN) {
+  _MD5Sink(Sink<Digest> sink) : super(sink, 16, endian: Endian.little) {
     digest[0] = 0x67452301;
     digest[1] = 0xefcdab89;
     digest[2] = 0x98badcfe;
diff --git a/pubspec.yaml b/pubspec.yaml
index 3cb1170..11ef115 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,10 +1,10 @@
 name: crypto
-version: 2.0.2+1
+version: 2.0.3
 author: Dart Team <misc@dartlang.org>
 description: Library of cryptographic functions.
 homepage: https://www.github.com/dart-lang/crypto
 environment:
-  sdk: '>=1.16.0 <2.0.0'
+  sdk: '>=2.0.0-dev.17.0 <2.0.0'
 dependencies:
   collection: '^1.0.0'
   convert: '>=1.0.0 <3.0.0'
