22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
#import <ObjFW/ObjFW.h>
#import "XMPPAuthenticator.h"
#import "XMPPConnection.h"
OF_ASSUME_NONNULL_BEGIN
/**
* \brief A class to authenticate using SCRAM
*/
@interface XMPPSCRAMAuth: XMPPAuthenticator
{
Class _hashType;
OFString *_cNonce;
OFString *_GS2Header;
OFString *_clientFirstMessageBare;
OFData *_serverSignature;
XMPPConnection *_connection;
bool _plusAvailable;
bool _authenticated;
}
/**
* \brief Creates a new autoreleased XMPPSCRAMAuth with an authcid and password.
*
* \param authcid The authcid to authenticate with
* \param password The password to authenticate with
* \param connection The connection over which authentication is done
* \param hash The class to use for calulating hashes
* \param plusAvailable Whether the PLUS variant was offered
* \return A new autoreleased XMPPSCRAMAuth
*/
+ (instancetype)SCRAMAuthWithAuthcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable;
/**
* \brief Creates a new autoreleased XMPPSCRAMAuth with an authzid, authcid and
* password.
*
* \param authzid The authzid to get authorization for
* \param authcid The authcid to authenticate with
* \param password The password to authenticate with
* \param connection The connection over which authentication is done
* \param hash The class to use for calulating hashes
* \param plusAvailable Whether the PLUS variant was offered
* \return A new autoreleased XMPPSCRAMAuth
*/
+ (instancetype)SCRAMAuthWithAuthzid: (nullable OFString *)authzid
authcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable;
- initWithAuthcid: (nullable OFString *)authcid
password: (nullable OFString *)password OF_UNAVAILABLE;
- initWithAuthzid: (nullable OFString *)authzid
authcid: (nullable OFString *)authcid
password: (nullable OFString *)password OF_UNAVAILABLE;
/**
* \brief Initializes an already allocated XMPPSCRAMAuth with an authcid and
* password.
*
* \param authcid The authcid to authenticate with
* \param password The password to authenticate with
* \param connection The connection over which authentication is done
* \param hash The class to use for calulating hashes
* \param plusAvailable Whether the PLUS variant was offered
* \return A initialized XMPPSCRAMAuth
*/
- initWithAuthcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable;
/**
* \brief Initializes an already allocated XMPPSCRAMAuth with a authzid,
* authcid and password.
*
* \param authzid The authzid to get authorization for
* \param authcid The authcid to authenticate with
* \param password The password to authenticate with
* \param connection The connection over which authentication is done
* \param hash The class to use for calulating hashes
* \param plusAvailable Whether the PLUS variant was offered
* \return A initialized XMPPSCRAMAuth
*/
- initWithAuthzid: (nullable OFString *)authzid
authcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable OF_DESIGNATED_INITIALIZER;
@end
OF_ASSUME_NONNULL_END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
#import <ObjFW/ObjFW.h>
#import "XMPPAuthenticator.h"
#import "XMPPConnection.h"
OF_ASSUME_NONNULL_BEGIN
/*!
* @brief A class to authenticate using SCRAM
*/
@interface XMPPSCRAMAuth: XMPPAuthenticator
{
Class _hashType;
OFString *_cNonce;
OFString *_GS2Header;
OFString *_clientFirstMessageBare;
OFData *_serverSignature;
XMPPConnection *_connection;
bool _plusAvailable;
bool _authenticated;
}
/*!
* @brief Creates a new autoreleased XMPPSCRAMAuth with an authcid and password.
*
* @param authcid The authcid to authenticate with
* @param password The password to authenticate with
* @param connection The connection over which authentication is done
* @param hash The class to use for calulating hashes
* @param plusAvailable Whether the PLUS variant was offered
* @return A new autoreleased XMPPSCRAMAuth
*/
+ (instancetype)SCRAMAuthWithAuthcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable;
/*!
* @brief Creates a new autoreleased XMPPSCRAMAuth with an authzid, authcid and
* password.
*
* @param authzid The authzid to get authorization for
* @param authcid The authcid to authenticate with
* @param password The password to authenticate with
* @param connection The connection over which authentication is done
* @param hash The class to use for calulating hashes
* @param plusAvailable Whether the PLUS variant was offered
* @return A new autoreleased XMPPSCRAMAuth
*/
+ (instancetype)SCRAMAuthWithAuthzid: (nullable OFString *)authzid
authcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable;
- initWithAuthcid: (nullable OFString *)authcid
password: (nullable OFString *)password OF_UNAVAILABLE;
- initWithAuthzid: (nullable OFString *)authzid
authcid: (nullable OFString *)authcid
password: (nullable OFString *)password OF_UNAVAILABLE;
/*!
* @brief Initializes an already allocated XMPPSCRAMAuth with an authcid and
* password.
*
* @param authcid The authcid to authenticate with
* @param password The password to authenticate with
* @param connection The connection over which authentication is done
* @param hash The class to use for calulating hashes
* @param plusAvailable Whether the PLUS variant was offered
* @return A initialized XMPPSCRAMAuth
*/
- initWithAuthcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable;
/*!
* @brief Initializes an already allocated XMPPSCRAMAuth with a authzid,
* authcid and password.
*
* @param authzid The authzid to get authorization for
* @param authcid The authcid to authenticate with
* @param password The password to authenticate with
* @param connection The connection over which authentication is done
* @param hash The class to use for calulating hashes
* @param plusAvailable Whether the PLUS variant was offered
* @return A initialized XMPPSCRAMAuth
*/
- initWithAuthzid: (nullable OFString *)authzid
authcid: (nullable OFString *)authcid
password: (nullable OFString *)password
connection: (XMPPConnection *)connection
hash: (Class)hash
plusAvailable: (bool)plusAvailable OF_DESIGNATED_INITIALIZER;
@end
OF_ASSUME_NONNULL_END
|