# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# Version should match lib/bouncycastle/BUCK
[library "bouncyCastleProvider"]
  name = Bouncy Castle Crypto Provider v152
  url = http://repo2.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk15on-1.52.jar
  sha1 = 88a941faf9819d371e3174b5ed56a3f3f7d73269
  remove = bcprov-.*[.]jar

# Version should match lib/bouncycastle/BUCK
[library "bouncyCastleSSL"]
  name = Bouncy Castle Crypto SSL v152
  url = http://repo2.maven.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.52/bcpkix-jdk15on-1.52.jar
  sha1 = b8ffac2bbc6626f86909589c8cc63637cc936504
  needs = bouncyCastleProvider
  remove = bcpkix-.*[.]jar

# Version should match lib/bouncycastle/BUCK
[library "bouncyCastlePGP"]
  name = Bouncy Castle Crypto OpenPGP v152
  url = http://repo2.maven.org/maven2/org/bouncycastle/bcpg-jdk15on/1.52/bcpg-jdk15on-1.52.jar
  sha1 = ff4665a4b5633ff6894209d5dd10b7e612291858
  needs = bouncyCastleProvider
  remove = bcpg-.*[.]jar

[library "mysqlDriver"]
  name = MySQL Connector/J 5.1.21
  url = http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar
  sha1 = 7abbd19fc2e2d5b92c0895af8520f7fa30266be9
  remove = mysql-connector-java-.*[.]jar

[library "oracleDriver"]
  name = Oracle JDBC driver 11g Release 2 (11.2.0)
  url = file:///u01/app/oracle/product/11.2.0/xe/jdbc/lib/ojdbc6.jar
  sha1 = 2f89cd9176772c3a6c261ce6a8e3d0d4425f5679
  remove = ojdbc6.jar

[library "db2Driver"]
  name = DB2 Type 4 JDBC driver (10.5)
  url = file:///opt/ibm/db2/V10.5/java/db2jcc4.jar
  sha1 = 9344d4fd41d6511f2d1d1deb7759056495b3a39b
  needs = db2DriverLicense
  remove = db2jcc4.jar

# Omit SHA-1 for license JAR as it's not stable and depends on the product
# the customer has purchased.
[library "db2DriverLicense"]
  name = DB2 Type 4 JDBC driver license (10.5)
  url = file:///opt/ibm/db2/V10.5/java/db2jcc_license_cu.jar
  remove = db2jcc_license_cu.jar
