diff --git a/WORKSPACE b/WORKSPACE
index bad4566040556400b655c89b02b254c8d7fe8652..9c94bc3adcbe7049f1ea093b6073caa0094fa76c 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,23 +1,21 @@
+# TODO(thaidn): remove this dependency by porting what needed to
+# third_party/rules_protobuf.
+git_repository(
+    name = "org_pubref_rules_protobuf",
+    remote = "https://github.com/pubref/rules_protobuf.git",
+    tag = "v0.7.2",
+)
+
 # go packages
 git_repository(
     name = "io_bazel_rules_go",
     remote = "https://github.com/bazelbuild/rules_go.git",
     tag = "0.4.4",
 )
-
 load("@io_bazel_rules_go//go:def.bzl", "go_repositories", "new_go_repository")
+load("@io_bazel_rules_go//proto:go_proto_library.bzl", "go_proto_repositories")
 
 go_repositories()
-
-git_repository(
-    name = "org_pubref_rules_protobuf",
-    remote = "https://github.com/pubref/rules_protobuf.git",
-    tag = "v0.7.2",
-)
-
-# TODO(thaidn): move this rule to third_party/rules_protobuf.
-load("@org_pubref_rules_protobuf//go:rules.bzl", "go_proto_repositories")
-
 go_proto_repositories()
 
 # cc
diff --git a/proto/BUILD b/proto/BUILD
index 1850381817d7512b243464767c78fee5d21abfc8..453cea64e6d9747eaab126d8ac1122d02e84c2cd 100644
--- a/proto/BUILD
+++ b/proto/BUILD
@@ -9,7 +9,7 @@ package(
 
 licenses(["notice"])  # Apache 2.0
 
-load("@org_pubref_rules_protobuf//go:rules.bzl", "go_proto_library")
+load("@io_bazel_rules_go//proto:go_proto_library.bzl", "go_proto_library")
 
 # -----------------------------------------------
 # common
@@ -38,7 +38,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "common_go_proto",
-    protos = [
+    srcs = [
         "common.proto",
     ],
 )
@@ -73,12 +73,12 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "tink_go_proto",
-    proto_deps = [
-        ":common_go_proto",
-    ],
-    protos = [
+    srcs = [
         "tink.proto",
     ],
+    deps = [
+        ":common_go_proto",
+    ],
 )
 
 # -----------------------------------------------
@@ -111,12 +111,12 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "ecdsa_go_proto",
-    proto_deps = [
-        ":common_go_proto",
-    ],
-    protos = [
+    srcs = [
         "ecdsa.proto",
     ],
+    deps = [
+        ":common_go_proto",
+    ],
 )
 
 # -----------------------------------------------
@@ -146,7 +146,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "ed25519_go_proto",
-    protos = [
+    srcs = [
         "ed25519.proto",
     ],
 )
@@ -179,12 +179,12 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "hmac_go_proto",
-    proto_deps = [
-        ":common_go_proto",
-    ],
-    protos = [
+    srcs = [
         "hmac.proto",
     ],
+    deps = [
+        ":common_go_proto",
+    ],
 )
 
 # -----------------------------------------------
@@ -214,7 +214,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "aes_ctr_go_proto",
-    protos = [
+    srcs = [
         "aes_ctr.proto",
     ],
 )
@@ -250,13 +250,13 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "aes_ctr_hmac_aead_go_proto",
-    proto_deps = [
+    srcs = [
+        "aes_ctr_hmac_aead.proto",
+    ],
+    deps = [
         ":aes_ctr_go_proto",
         ":hmac_go_proto",
     ],
-    protos = [
-        "aes_ctr_hmac_aead.proto",
-    ],
 )
 
 # -----------------------------------------------
@@ -286,7 +286,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "aes_gcm_go_proto",
-    protos = [
+    srcs = [
         "aes_gcm.proto",
     ],
 )
@@ -320,13 +320,13 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "aes_ctr_hmac_streaming_go_proto",
-    proto_deps = [
+    srcs = [
+        "aes_ctr_hmac_streaming.proto",
+    ],
+    deps = [
         ":common_go_proto",
         ":hmac_go_proto",
     ],
-    protos = [
-        "aes_ctr_hmac_streaming.proto",
-    ],
 )
 
 # -----------------------------------------------
@@ -355,12 +355,12 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "aes_gcm_hkdf_streaming_go_proto",
-    proto_deps = [
-        ":common_go_proto",
-    ],
-    protos = [
+    srcs = [
         "aes_gcm_hkdf_streaming.proto",
     ],
+    deps = [
+        ":common_go_proto",
+    ],
 )
 
 # -----------------------------------------------
@@ -390,7 +390,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "aes_eax_go_proto",
-    protos = [
+    srcs = [
         "aes_eax.proto",
     ],
 )
@@ -422,7 +422,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "chacha20_poly1305_go_proto",
-    protos = [
+    srcs = [
         "chacha20_poly1305.proto",
     ],
 )
@@ -454,7 +454,7 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "gcp_kms_go_proto",
-    protos = [
+    srcs = [
         "gcp_kms.proto",
     ],
 )
@@ -487,12 +487,12 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "kms_envelope_go_proto",
-    proto_deps = [
-        ":tink_go_proto",
-    ],
-    protos = [
+    srcs = [
         "kms_envelope.proto",
     ],
+    deps = [
+        ":tink_go_proto",
+    ],
 )
 
 # -----------------------------------------------
@@ -526,11 +526,11 @@ java_lite_proto_library(
 
 go_proto_library(
     name = "ecies_aead_hkdf_go_proto",
-    proto_deps = [
+    srcs = [
+        "ecies_aead_hkdf.proto",
+    ],
+    deps = [
         ":common_go_proto",
         ":tink_go_proto",
     ],
-    protos = [
-        "ecies_aead_hkdf.proto",
-    ],
 )