1 package org.metricshub.ipmi.core.sm.events; 2 3 /*- 4 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 5 * IPMI Java Client 6 * ჻჻჻჻჻჻ 7 * Copyright 2023 Verax Systems, MetricsHub 8 * ჻჻჻჻჻჻ 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Lesser Public License for more details. 18 * 19 * You should have received a copy of the GNU General Lesser Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 22 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 23 */ 24 25 import org.metricshub.ipmi.core.coding.commands.session.Rakp1ResponseData; 26 import org.metricshub.ipmi.core.coding.security.CipherSuite; 27 import org.metricshub.ipmi.core.sm.StateMachine; 28 import org.metricshub.ipmi.core.sm.states.Rakp1Complete; 29 import org.metricshub.ipmi.core.sm.states.Rakp3Waiting; 30 31 /** 32 * Performs transition from {@link Rakp1Complete} to {@link Rakp3Waiting}. 33 * 34 * @see StateMachine 35 */ 36 public class Rakp2Ack extends StateMachineEvent { 37 private byte statusCode; 38 private CipherSuite cipherSuite; 39 private int sequenceNumber; 40 private int managedSystemSessionId; 41 private Rakp1ResponseData rakp1ResponseData; 42 43 /** 44 * Prepares {@link Rakp2Ack}. 45 * 46 * @param cipherSuite 47 * - {@link CipherSuite} containing authentication, 48 * confidentiality and integrity algorithms for this session. 49 * Only authentication algorithm is used at this point of 50 * creating a session. 51 * @param statusCode 52 * - Status of the previous message. 53 * @param sequenceNumber 54 * 55 * @param managedSystemSessionId 56 * - The Managed System's Session ID for this session. Must be as 57 * returned by the Managed System in the Open Session Response 58 * message. 59 * @param rakp1ResponseData 60 * - RAKP Message 2 received earlier in the authentification 61 * process 62 */ 63 public Rakp2Ack(CipherSuite cipherSuite, int sequenceNumber, 64 byte statusCode, int managedSystemSessionId, 65 Rakp1ResponseData rakp1ResponseData) { 66 this.statusCode = statusCode; 67 this.cipherSuite = cipherSuite; 68 this.sequenceNumber = sequenceNumber; 69 this.managedSystemSessionId = managedSystemSessionId; 70 this.rakp1ResponseData = rakp1ResponseData; 71 } 72 73 public byte getStatusCode() { 74 return statusCode; 75 } 76 77 public CipherSuite getCipherSuite() { 78 return cipherSuite; 79 } 80 81 public int getSequenceNumber() { 82 return sequenceNumber; 83 } 84 85 public int getManagedSystemSessionId() { 86 return managedSystemSessionId; 87 } 88 89 public Rakp1ResponseData getRakp1ResponseData() { 90 return rakp1ResponseData; 91 } 92 }