anchor.diff:    Sign(this.accessKey,this.secretKey);
     
     Request sign2(Request req){
  +    final query = req.uri.queryParameters;
  +    query['AWSAccessKeyId'] = accessKey;
  +    query['SignatureVersion'] = '2';
  +    query['SignatureMethod'] = 'HmacSHA256';
  +    query['Timestamp'] = version2date(req.headers['Date']);
  +    
  +    final method = req.method;
  +    final host = req.headers['Host'];
  +    final path = canonicalPath(req.uri.pathSegments);
  +    final queryString = canonicalQuery(query);
  +    final canonical = canonical2(method, host, path, query);
  +    
  +    final signingKey = UTF8.encode(secretKey);
  +    final signature = bytesToHex(hmac(signingKey, canonical));
  +    
  +    query['Signature'] = Uri.encodeComponent(CryptoUtils.bytesToBase64(signature));
  +    
  +    req.uri = new Uri(scheme: req.uri.scheme, userInfo: req.uri.userInfo, 
  +              host: req.uri.host, port: req.uri.port,
  +              path: req.uri.path, query: req.uri.query);
       return req;
     }
     
  
positive.code: class Sign{
    static final algorithm = 'AWS4-HMAC-SHA256';
    var iso = new DateFormat('yyyy-MM-ddTHH:mm:ss');
    var long4 = new DateFormat("yyyyMMddTHHmmss'Z'");
    var short4 = new DateFormat('yyyyMMdd');
    
    final String accessKey;
    final String secretKey;
  
negative.code:     return hmac.close();
    }
    
    String version2date(String date){
      return date;
    }
    
    List<int> getSigningKey(List<String> scope){
      return scope.fold(UTF8.encode('AWS4' + secretKey), hmac);
  