11ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root/* 21ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * Copyright (C) 2012 The Android Open Source Project 31ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * 41ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 51ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * you may not use this file except in compliance with the License. 61ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * You may obtain a copy of the License at 71ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * 81ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * http://www.apache.org/licenses/LICENSE-2.0 91ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * 101ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * Unless required by applicable law or agreed to in writing, software 111ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * distributed under the License is distributed on an "AS IS" BASIS, 121ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * See the License for the specific language governing permissions and 141ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root * limitations under the License. 151ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root */ 161ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root 17860d2707ce126ef8f66e3eac7ceeab6d24218cd8Kenny Rootpackage org.conscrypt; 181ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root 1954f004579ab0c0d792e962050677a821e1758acaKenny Rootclass OpenSSLCipherContext { 2038c70d393f14cf0963a289caefb72e6ac14e23d3Joel Dice private final long context; 211ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root 2238c70d393f14cf0963a289caefb72e6ac14e23d3Joel Dice OpenSSLCipherContext(long ctx) { 231ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root if (ctx == 0) { 241ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root throw new NullPointerException("ctx == 0"); 251ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root } 261ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root 271ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root this.context = ctx; 281ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root } 291ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root 301ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root @Override 311ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root protected void finalize() throws Throwable { 321ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root try { 33c64652932d8e17ccf7e54c0c76c1b38a86841732Narayan Kamath NativeCrypto.EVP_CIPHER_CTX_free(context); 341ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root } finally { 351ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root super.finalize(); 361ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root } 371ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root } 381ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root 3938c70d393f14cf0963a289caefb72e6ac14e23d3Joel Dice long getContext() { 401ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root return context; 411ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root } 421ddc76d634923479be2b520b2bf20f71ff4f1f44Kenny Root} 43