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