| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library pub_dartlang_org.upload_signer_service; | 5 library pub_dartlang_org.upload_signer_service; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert'; | 8 import 'dart:convert'; |
| 9 | 9 |
| 10 import 'package:crypto/crypto.dart'; | |
| 11 import 'package:googleapis_auth/src/crypto/rsa_sign.dart'; | 10 import 'package:googleapis_auth/src/crypto/rsa_sign.dart'; |
| 12 import 'package:googleapis_auth/src/crypto/pem.dart' as pem; | 11 import 'package:googleapis_auth/src/crypto/pem.dart' as pem; |
| 13 import 'package:googleapis_auth/src/crypto/rsa.dart' as rsa; | 12 import 'package:googleapis_auth/src/crypto/rsa.dart' as rsa; |
| 14 | 13 |
| 15 import 'package:gcloud/service_scope.dart' as ss; | 14 import 'package:gcloud/service_scope.dart' as ss; |
| 16 import 'package:pub_server/repository.dart'; | 15 import 'package:pub_server/repository.dart'; |
| 17 | 16 |
| 18 import 'keys.dart'; | 17 import 'keys.dart'; |
| 19 | 18 |
| 20 /// The registered [UploadSignerService] object. | 19 /// The registered [UploadSignerService] object. |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 {'expires' : expirationString}, | 65 {'expires' : expirationString}, |
| 67 {'success_action_redirect' : successRedirectUrl}, | 66 {'success_action_redirect' : successRedirectUrl}, |
| 68 ['content-length-range', 0, maxUploadSize], | 67 ['content-length-range', 0, maxUploadSize], |
| 69 ]; | 68 ]; |
| 70 | 69 |
| 71 var policyMap = { | 70 var policyMap = { |
| 72 'expiration' : expirationString, | 71 'expiration' : expirationString, |
| 73 'conditions' : conditions, | 72 'conditions' : conditions, |
| 74 }; | 73 }; |
| 75 | 74 |
| 76 var policyString = | 75 var policyString = BASE64.encode(UTF8.encode(JSON.encode(policyMap))); |
| 77 CryptoUtils.bytesToBase64(UTF8.encode(JSON.encode(policyMap))); | 76 var signatureString = BASE64.encode(_signer.sign(ASCII.encode(policyString))
); |
| 78 var signatureString = | |
| 79 CryptoUtils.bytesToBase64(_signer.sign(ASCII.encode(policyString))); | |
| 80 | 77 |
| 81 var fields = { | 78 var fields = { |
| 82 'key' : object, | 79 'key' : object, |
| 83 'acl' : predefinedAcl, | 80 'acl' : predefinedAcl, |
| 84 'Expires' : expirationString, | 81 'Expires' : expirationString, |
| 85 'GoogleAccessId' : serviceAccountEmail, | 82 'GoogleAccessId' : serviceAccountEmail, |
| 86 'policy' : policyString, | 83 'policy' : policyString, |
| 87 'signature' : signatureString, | 84 'signature' : signatureString, |
| 88 'success_action_redirect' : successRedirectUrl, | 85 'success_action_redirect' : successRedirectUrl, |
| 89 }; | 86 }; |
| 90 | 87 |
| 91 return new AsyncUploadInfo(UploadUrl, fields); | 88 return new AsyncUploadInfo(UploadUrl, fields); |
| 92 } | 89 } |
| 93 } | 90 } |
| OLD | NEW |