1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /**
6  * Licensed to the Apache Software Foundation (ASF) under one
7  * or more contributor license agreements. See the NOTICE file
8  * distributed with this work for additional information
9  * regarding copyright ownership. The ASF licenses this file
10  * to you under the Apache License, Version 2.0 (the
11  * "License"); you may not use this file except in compliance
12  * with the License. You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing,
17  * software distributed under the License is distributed on an
18  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19  * KIND, either express or implied. See the License for the
20  * specific language governing permissions and limitations
21  * under the License.
22  */
23 package org.jcp.xml.dsig.internal;
24 
25 import java.io.ByteArrayOutputStream;
26 import javax.crypto.Mac;
27 
28 /**
29  * Derived from Apache sources and changed to use Mac objects instead of
30  * com.sun.org.apache.xml.internal.security.algorithms.SignatureAlgorithm objects.
31  *
32  *
33  */
34 public class MacOutputStream extends ByteArrayOutputStream {
35     private final Mac mac;
36 
MacOutputStream(Mac mac)37     public MacOutputStream(Mac mac) {
38         this.mac = mac;
39     }
40 
41     @Override
write(int arg0)42     public void write(int arg0) {
43         super.write(arg0);
44         mac.update((byte) arg0);
45     }
46 
47     @Override
write(byte[] arg0, int arg1, int arg2)48     public void write(byte[] arg0, int arg1, int arg2) {
49         super.write(arg0, arg1, arg2);
50         mac.update(arg0, arg1, arg2);
51     }
52 }
53